Datenschutzerklärung

Externe Javascript Datei aufrufen

Validome - Forum

Startseite Validome
RSS 2.0  
Sie sind nicht angemeldet. Atom 1.0  
Forum Home / Javascript-Forum /

Externe Javascript Datei aufrufen

  Beitrag schreiben
Autor
Beitrag Seiten: 1
markusva
Mitglied

Registriert: 15.12.2007
Beiträge: 4
Hallo,

ich brauche mal dringend Hilfe.
Ich möchte eine externe Javascript-Datei (popup.php) aufrufen an die mehrere Variablen übergeben werden. In dieser externen Javascrript Datei werden die Variablen mit PHP (echo $variablenname) eingefügt und wenn ein Popup-Blocker installiert ist, ein DHTML Inlineframe angezeigt, anderenfalls ein Popupfenster.

Das Javascript funktioniert tadellos und fehlerfrei(!!!) sofern ich es mit <script language="JavaScript src="http://www.domain.de/popup.php?popupurl=http://www.domain.de/test.php&popupwidth=450&popupheight=150&titlename=Download&center=yes" type="text/javascript"></script> aufrufe.

Nun möchte ich die Datei aber mit einem Link auf den geklickt wird aufrufen, mit dynamischen Variablen:

- Rufe ich über onclick mit Variablen eine Funktion auf, die das externe Script mit document.write einläd, funktioniert es zwar tadellos, allerdings ändert sich die aktuelle Seite in eine leere Seite.

- Rufe ich das Script nun wie folgt auf:

<script type="text/javascript">
function loadScript (url) {
  if (document.layers)
    window.location.href = url;
  else if (document.getElementById) {
    var script = document.createElement('script');
    script.defer = true;
    script.src = url;
    document.getElementsByTagName('head')[0].appendChild(script);
  }
}
</script>

<a href="#" onclick="loadScript('http://www.domain.de/popup.php?popupurl=http://www.domain.de/test.php&popupwidth=450&popupheight=150&titlename=Download1&center=yes')";>LINK 1</a>
<a href="#" onclick="loadScript('http://www.domain.de/popup.php?popupurl=http://www.domain.de/test.php&popupwidth=450&popupheight=150&titlename=Download2&center=yes')";>LINK 2</a>

klappt zwar die Popupfunktion einwandfrei und die Seite bleibt erhalten, aber das Inline-DHTML Frame wird auf der aktuellen Seite nicht mehr angezeigt.

Kennt sich vielleicht jemand aus und weiß was ich da falsch mache??? Würde mich über Hilfe wahnsinnig freuen! Vielen lieben Dank!!

LG, Madman


15.12.2007 00:43:51
  Beitrag schreiben
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 654
Hi,
wie wird denn das DHTML Inlineframe im ersten Fall generiert? Befindet sich  das dafür benötigte HTML bereits im Dokument oder wird es mit document.write (oder DOM) nachträglich ins Dokument eingefügt?
Besonders bei document.write wirst Du im 2. Fall kein Glück haben, wo soll er auch hinwriten? ;-)
Füge das Inlineframe entweder mit DOM, oder bei umfangreicheren HTML mittels innerHTML ins Dokument ein.


_______________________________________
mfg
Thomas Mell

www.validome.org

15.12.2007 02:15:26
  Beitrag schreiben
markusva
Mitglied

Registriert: 15.12.2007
Beiträge: 4
Hier das popup.php dass ich aufrufe: http://vahrenholt.info/popup.txt

15.12.2007 03:03:09
  Beitrag schreiben
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 654
Zeile 194 ist es. Wie ich vermutet habe mit document.write...
Füge in dein Dokument innerhalb des body-Elementes ein div-Element mit einer id ein.

Code:

<div id="myLayer">&nbsp;</div>

Nun fügen wir das ursprünglich per dokument.write geschriebene div-Element per innerHTML ins Dokument ein.

Code:

document.ElementById("myLayer").innerHTML = "<div id=\"popup"....";



_______________________________________
mfg
Thomas Mell

www.validome.org

15.12.2007 14:34:13
  Beitrag schreiben
markusva
Mitglied

Registriert: 15.12.2007
Beiträge: 4
Hallo Thomas,
danke für die Hilfe. Aber trotz Änderung, immer noch keine Anzeige des Layers auf der Seite.
Vielleicht hat der Aufruf was damit zu tun, daß er den Layer irgendwie nicht zuordnen kann??

Code:

<script type="text/javascript">
function loadScript (url) {
  if (document.layers)
    window.location.href = url;
  else if (document.getElementById) {
    var script = document.createElement('script');
    script.defer = true;
    script.src = url;
    document.getElementsByTagName('head')[0].appendChild(script);
  }
}
</script>

Vielleicht könntest Du nochmals drüberschauen. Vielen lieben Dank!
Madman


15.12.2007 15:01:32
  Beitrag schreiben
markusva
Mitglied

Registriert: 15.12.2007
Beiträge: 4
grad erst gesehen...wenn der Layer aufgehen soll spuckt der Browser folgenden Fehler raus: Zeile: 195 Zeichen: 5 Fehler: Das Objekt unterstützt diese Eigenschaft oder Methode nicht Code: 0

Beitrag geändert von markusva (15.12.2007 15:12:21)


15.12.2007 15:11:22
  Beitrag schreiben
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 654
innerHTML funktioniert soweit ich weiß nicht in XHTML. Ansonsten mußt Du Dir das div-Element per DOM erzeugen und einfügen.

_______________________________________
mfg
Thomas Mell

www.validome.org

15.12.2007 19:33:06
  Beitrag schreiben
Seiten: 1   Beitrag schreiben
Wechsel zu

Valid HTML 4.01