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¢er=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¢er=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¢er=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 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
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 |
|
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 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
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"> </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 |
|
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 |
|
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 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
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 |
|
Wechsel zu
Die letzten Beiträge aus diesen Forum
|
|