iframe を含むページがあります。iframe 内で、デフォルト ページは javascript を実行して子ウィンドウを開き、外部サービスにログインしてから、その外部サービスのコンテンツを iframe に表示します。
私のコードは Chrome と IE では正常に動作しますが、Safari と Firefox では動作しません。これらのブラウザーでは、親ウィンドウは、ユーザーが現在外部サービスにログインしているという事実を無視しているように見え、表示されるはずの情報ではなく、「ログインしていません」というメッセージを表示します。
これが私がやろうとしていることのコードです。
HTML (メインページ):
<iframe id="brief" name="brief" src="contents/somepage.php?var=WXYZ" width="962" height="600">
<p>Your browser does not support iframes.</p>
</iframe>
somepage.php
<html>
<head>
<script type="text/javascript">
window.onload = function()
{
var code = 'WXYZ';
var login = http://www.externalsite.com/brief/html.asp?/cgi-bin/service?msg=0048&usr=username&pwd=pass';
//OPEN CHILD WINDOW AND LOGIN USING VARIABLES ABOVE, THEN CLOSE WINDOW
childWindow=window.open(login,'','width=30,height=30,location=no');
var cmd = 'childWindow.close()';
setTimeout(cmd,2000);
//REDIRECT THIS IFRAME TO BRIEFING INFORMATION
var uri = 'http://www.externalsite.com/brief/html.asp?/cgi-bin/service?msg=0092&AID=NOSEND&MET=1&NTM=1&LOC='+code;
self.location.href=uri;
}
</script>
</head>
<body>
</body>
</html>
さまざまな setTimeout 関数を調整して、スクリプトの特定の側面を遅らせて、他の何かが発生するのを待機しようとしましたが、役に立たないようです。
このコードには、見落としているクロスブラウザーの問題がありますか?
ありがとう