opener.location für IE und Firefox
Alexander Schimpf
- javascript
Hallo,
mein (nicht benennbares) Hauptfenster ruft ein PopUp auf in dem sich ein Flashfilm befindet. Aus dem Flashfilm wird die JavScript-Funktion 'uebergabe(url)' aufgerufen. Diese befindet sich in dem HTML-Code des PopUp. Der Flashfilm übergibt den Link zur Seite die wieder im Hauptfenster aufgerufen werden soll. An den Link hängt die Funktion ein paar Parameter, die ich vom Hauptfenster an die PopUp-Datei mitgegeben habe.
Nun das Problem:
Per alert() schaue ich mir an ob Link und parameter ordentlich ankommen. TUN SIE AUCH!
ABER nur der Firefox versucht die Seite im Hauptfenster richtig zu öffnen. Der Aufruf sieht so aus: http://www.xxxx.de/xy.asp?agenturNr=1&test=test&super=test
Der IE dagegen versucht das Fenster zu öffnen, vergisst aber die Parameter an die URL zu hängen. Der Aufruf sieht so aus: http://www.xxxx.de/xy.asp?
Was läuft hier falsch? Gibt es für die Browser verschiedne Schreibweisen für den Aufruf ala: opener.location.href = url+parameter;
Bin für jede Hilfe dankbar, da mir heute Nachmittag die Abgabe im Nacken sitzt. ;)
function uebergabe(url)
{
var temp;
var meinString;
temp=window.location.search;
parameter=temp.substr(1,temp.length);
alert("Parameter: "+url+parameter);
opener.location.href = url+parameter;
}
Gruß aus Hannover,
Alex
Hallo Alex,
cih aknn dein Problem nicht nachvollzeihen - habe deine Codeschnipsel mal in Testseiten eingebaut und der IE 6, XP SP 2 macht das, was er soll...
test.htm:
<html>
<head>
<title>Test</title>
</head>
<body>
<a href="./popup.htm?bla=blubb" target="_blank" onclick="window.open(this.href, this.target); return false;">Pop</a>
</body>
</html>
popup.htm:
<html>
<head>
<title>popup</title>
<script type="text/javascript">
function uebergabe(url)
{
var temp;
var meinString;
temp=window.location.search;
parameter=temp.substr(1,temp.length);
alert("Parameter: "+url+parameter);
opener.location.href = url+parameter;
}
</script>
</head>
<body>
<a onclick="uebergabe('./test.htm?');">Klick</a>
</body>
Der Fehler muss irgendwo anders liegen...
Gruß
Martin