我有一个带有 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>
某页.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 函数以尝试延迟脚本的某些方面以等待其他事情发生,但这似乎没有帮助。
我缺少的这段代码是否存在一些跨浏览器问题?
谢谢