window.open
Wolfgang
- javascript
Ich versuche nun schon seit Stunden vergeblich folgenden Code im FireFox (FF) auszuführen.
<a href="javascript:void(0)" onclick="window.open("file://///server/share/dir/Bild.jpg", "Bild"); return false">XYZ</a)
Im InternetExplorer (IE) wird aufgrund des Links auch tatsächlich ein neues Fenster geöffnet und das Bild angezeigt.
Der FF reagiert darauf mit folgender Fehlermeldung:
---
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost:8080/sug/ :: onclick :: line 1" data: no]
---
Bau ich den Link in ein einfaches HTML-Dokument ein, welches ich über Datei öffnen in den FF lade, dann funktioniert der Link.
Wird der gleiche Link allerdings vom Server in eine HTML-Seite gestellt, so funktioniert er nicht mehr.
Ich habe auch schon versucht die user.js und die prev.js von FF zu verändern, doch entweder ist dies nicht die Ursache für den Fehler, oder ich habe die falschen Einstellungen erwischt.
Kann mir jemand weiterhelfen?
<a href="javascript:void(0)" onclick="window.open("file://///server/share/dir/Bild.jpg", "Bild"); return false">XYZ</a)
Dafür würde ich keinen Link verwenden, man könnte denken es gebe ein Ziel oder du machst es so, dass der Link auch Sinn hat:
<a href="file://///server/share/dir/Bild.jpg"
onclick="window.open(this.href, "Bild"); return false">XYZ</a>
Der FF reagiert darauf mit folgender Fehlermeldung:
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost:8080/sug/ :: onclick :: line 1" data: no]
Das sieht so aus, als ob du den eingebauten Popupblocker noch eingeschaltet hast.
Ich habe auch schon versucht die user.js und die prev.js von FF zu verändern, doch entweder ist dies nicht die Ursache für den Fehler, oder ich habe die falschen Einstellungen erwischt.
Ich hab noch nie in diesen Dateien etwas verändern müssen und würd mich auch gar nicht daran wagen, wenn ich nicht wüßte was ich tue. Was wolltest du dort ändern?
Der Popupblocker ist unter Einstellungen zu finden und Finetuning kannst du u.U. in about:config machen.
Struppi.
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost:8080/sug/ :: onclick :: line 1" data: no]
Du hast die Slashes nicht mit Backslashes escaped. Dadurch fehlt ihm eine zulässige URL. Sobald Du die Datei vom Server lädt, bekommt sie eine Zeichenkodierung, die dieses Problem behebt.
Gruß, LX
Stimmt, das hier
<a href="javascript:void(0)" onclick="window.open("file://///server/share/dir/Bild.jpg", "Bild"); return false">XYZ</a)
wirft nicht diese Fehlermeldung:
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost:8080/sug/ :: onclick :: line 1" data: no]
Sondern diese:
Fehler: syntax error
Quelldatei: ..../Javascript/test.html
Zeile: 1, Spalte: 11
Quelltext:
window.open(
Du musst die inneren doppelten Anführungszeichen, gegen einfache austauschen.
Struppi.
Mahlzeit Wolfgang,
ich spiele mal kurz Browser, ja?
<a href="javascript:void(0)" onclick="window.open("file://///server/share/dir/Bild.jpg", "Bild"); return false">XYZ</a)
1. Akt:
Ich parse also mal den von Dir vorgesetzten Text:
<a
Aha, ich soll also einen Link darstellen.
href=
Aha, es folgt also die Angabe des Verweisziels.
"javascript:void(0)"
Hm, komisches Protokoll - aber der Webseitenautor wird schon wissen, was er da macht.
onclick=
Aha, es folgt also noch ein Onclick-Handler.
"window.open("
Ich richte dann mal einen Eventhandler ein, der dieses Stück Javascript-Code ausführt, wenn der Benutzer auf den Link klickt.
file://///server/share/dir/Bild.jpg",
Komische Zeichenfolge, kenne ich nicht - ignoriere ich also mal.
"Bild");
Komische Zeichenfolge, kenne ich nicht - ignoriere ich also mal.
return false"
Komische Zeichenfolge, kenne ich nicht - ignoriere ich also mal.
XYZ</a
Ah, die Linkdefinition ist beendet. Als "Beschriftung" soll also "XYZ" dargestellt werden. Allerdings ist das schließende Tag nicht korrekt, da
)
dort nicht wirklich gültig ist.
2. Akt:
Benutzer klickt auf den Link:
<Event>
Oh, der Benutzer hat geklickt. Dem Element wurde ja ein Eventhandler zugeordnet. Ich suche mal kurz den Javascript-Code heraus:
"window.open("
Gefunden! Dann kann ich den ja mal ausführen:
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost:8080/sug/ :: onclick :: line 1" data: no]
Kann mir jemand weiterhelfen?
Du selbst. Schreib validen Code.
MfG,
EKKi