opener ie8 und firefox
KAi
- javascript
Seit kurzem habe ich ein seltsames Problem. Ich habe bisher immer aus dem Hauptfenster aufgerufen und die Werte vom PopUp wieder zurück gegeben. Alles lief einwandfrei. Neudings funktioniert diese Methode aber leider nicht mehr ...
JS Funktion für Aufruf auf der Hauptseite
function get_media(NAME, PATH_INPUT) {
media_win = window.open('index.php?&module=media&modus=media&path_input=' + PATH_INPUT +'&window=popup&input_name=' + NAME, 'media_win', 'width=520, height=510, scrollbars=no');
media_win.focus();
}
<img src="./design/icons/16_16_4/picture_add.png" alt="Bild auswählen" onMouseUp="get_media('article_picture_small', 'article_picture_small_path');">
JS Funktion für Übergabe der PopUp Werte
function node_select(INPUT_NAME, PARENT_CHILD, INPUT_PATH, PATH) {
opener.document.getElementById(INPUT_NAME).value = PARENT_CHILD;
opener.document.getElementById(INPUT_PATH).value = PATH;
window.close();
}
<img src="./design/icons/16_16_4/page_white_jpg.png" onMouseUp="node_select('article_picture_small','show_image_in_imgtag.jpg', 'article_picture_small_path', '');">
Es geht hierbei um eine simple Auswahl von Bilder. Auf der Hauptseite sind die Inputfelder hinterlegt. Durch einen Klick auf Bild hinzufügen wird die Funktion get_media aufgerufen. Danach öffnet sich ein PopUp in welchem Bilddateien angezeigt werden. Klicke ich nun auf ein entsprechendes Bild, soll der Dateinamen sowie Pfad an das Hauptfenster übergeben werden.
Wie gesagt, bisher hat es einwandfrei geklappt... Nun erhalte ich im IE8 & 7 die Fehlermeldung (Klasse unterstützt keine Automatisierung) ...
Hat jemand eine Idee an was es liegen könnte? Vielen Dank schonmal im Voraus!
Kai
P.S.: Auch die simplen opener Beispiele von selfHtml http://de.selfhtml.org/javascript/objekte/window.htm funktionieren nicht :/
P.S.: Auch die simplen opener Beispiele von selfHtml http://de.selfhtml.org/javascript/objekte/window.htm funktionieren nicht :/
In meinem IE 8 funktioneren die Beispiel. Du hast den Popupblocker ausgeschaltet?
Struppi.
In meinem IE 8 funktioneren die Beispiel. Du hast den Popupblocker ausgeschaltet?
Hallo Struppi, also das PopUp kommt zwar, aber der Befehl, welcher das Hauptfenster schließt funktioniert nicht. D.h. der Zugriff auf das Hauptfenster wird mir wahrscheinlich in irgend einer Form verweigert! (Meine Einschätzung)
noch einen zusatz. ich habe das beispiel von selfhtml nun 1:1 nachgestellt. folgendes tritt auf
IE8
Details zum Fehler auf der Webseite
Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Zeitstempel: Thu, 11 Mar 2010 11:40:03 UTC
Meldung: Klasse unterstützt keine Automatisierung.
Zeile: 5
Zeichen: 3
Code: 0
URI: http://localhost/
FF
Warnung: Skripte können Fenster nicht schließen, die nicht von ihnen geöffnet wurden.
Vielleicht hilft das ja...
noch einen zusatz. ich habe das beispiel von selfhtml nun 1:1 nachgestellt. folgendes tritt auf
Welches Beispiel denn? Du hast ja auf eine Seite, wo es ca. 20 Beispiele gibt verlinkt.
FF
Warnung: Skripte können Fenster nicht schließen, die nicht von ihnen geöffnet wurden.Vielleicht hilft das ja...
Ich finde, dass ist eine deutliche Meldung. Du willst nicht ein popup schliessen, sondern das Hauptfenster.
Struppi.
Folgendes Beispiel war es
<html><head><title>Test</title>
<script type="text/javascript">
function FensterOeffnen (Adresse) {
MeinFenster = window.open(Adresse, "Zweitfenster", "width=300,height=200,scrollbars=yes");
MeinFenster.focus();
}
</script>
</head><body>
<a href="datei2.htm" onclick="FensterOeffnen(this.href); return false">Neues Fenster</a>
</body></html>
sowie im popup
<a href="javascript:opener.close()">Hauptfenster zumachen</a>
im ff leuchtet es mir ja alles ein .. mein problem ist ja aber die übergabe.. also die funktionen welche ich selbst erstellt habe ;)
<a href="javascript:opener.close()">Hauptfenster zumachen</a>
Genau das darfst du nicht.
Wär ja noch schöner, wenn du mit JavaScript das Hauptfenster des Browsers schließen könntst. Innerhalb einer einzelnen Opera-Instanz wäre z.B. dann alles weg, weil das Popup ebenfalls in der Instanz des Hauptfensters läuft.
okay das leuchtet natürlich auch ein . fraglich wieso dann solch ein beispiel aufgeführt wird. aber zurück zum hauptproblem ;) d.h. meine geschriebene funktion. dort versuche ich ja nicht das hauptfenster zu schließen :/
...dort versuche ich ja nicht das hauptfenster zu schließen :/
Doch.
Struppi.
windows.close() ist raus ... kein erfolg.. habe soeben mal eine kleines testbeispiel gemacht
Hauptfenster
<html><head><title>Test</title>
<script type="text/javascript">
function FensterOeffnen (Adresse) {
window.open(Adresse, "Zweitfenster", "width=300,height=200,scrollbars=yes");
}
</script>
</head><body>
<a href="#" onclick="FensterOeffnen('datei2.htm');">Wert übergeben</a>
<form name="test" action="test.html" method="post">
<input type="text" id="text" name="text" value=""/>
</form>
</body></html>
PopUp
<html><head><title>Test</title>
<script type="text/javascript">
function test123(){
opener.document.getElementById("text").value = "test123";
}
</script>
</head><body>
<a href="#" onclick="test123();">Wert ändern</a>
</body></html>
Das Beispiel klappt im FF einwandfrei .. im IE8 passiert aber überhaupt nichts... Fehlermeldung wie gehabt bei
Details zum Fehler auf der Webseite
Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Zeitstempel: Thu, 11 Mar 2010 12:32:23 UTC
Meldung: Klasse unterstützt keine Automatisierung.
Zeile: 6
Zeichen: 8
Code: 0
URI: http://localhost/datei2.htm
sowie im popup
<a href="javascript:opener.close()">Hauptfenster zumachen</a>
Das geht nicht.
> im ff leuchtet es mir ja alles ein .. mein problem ist ja aber die übergabe.. also die funktionen welche ich selbst erstellt habe ;)
Dort versuchst du ebenfalls das Hauptfenster zu schliessen - das geht nicht.
Struppi.
So ich hab den Fehler gefunden .. aber nicht das ihr denk ich war zu blöd .. das scheint eine IE Sache zu sein... anbei der etwas untypische weg
IE schließen
CMD als Administrator ausführen
folgende Statements absetzen
REGSVR32 Msscript.ocx
REGSVR32 dispex.dll Regsvr32 Dispex.dll
REGSVR32 vbscript.dll REGSVR32 vbscript.dll
REGSVR32 scrrun.dll REGSVR32 scrrun.dll
REGSVR32 urlmon.dll Regsvr32 urlmon.dll
CMD schließen
IE neustarten ...
Sehr sehr seltsam.. Ich hoffe, dass es ggf. dem ein oder anderen etwas Zeit erspart! Trotzdem vielen Dank für eure Bemühungen!
Hallo KAi,
folgende Statements absetzen
und das sollen jetzt alle deine Seitenbesucher auch machen?
Gruß, Jürgen
Hallo,
folgende Statements absetzen
und das sollen jetzt alle deine Seitenbesucher auch machen?
nein, das dürfte nicht nötig sein - es sei denn, deren IE hätte denselben Schaden erlitten. Denn dass Windows-DLLs wie scrrun.dll, vbscript.dll oder urlmon.dll plötzlich aus der Registrierung verschwinden, deutet auf einen Installations- oder Update-Unfall hin.
Warum KAi die Kommandos zweimal notiert, wissen die Götter; das ist ein Syntaxfehler, den regsvr32 aber großzügig verzeiht, indem es überzählige Argumente einfach ignoriert.
Ciao,
Martin