window.opener |没有使用chrome

时间:2014-02-10 07:22:53

标签: javascript html google-chrome

我有两个html页面..我正在调用来自孩子的父窗口。所有事情都很有效。但是在Chrome中它失败了..我知道原因..

test1.html: -

<html>
<head>
<title>Compose</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<SCRIPT>
function test(){
//alert('');
var win = window.open('../login/test2.html',"","height=700,width=800");
}
function test1(){
alert('test1');
}
</SCRIPT>
</head>
<body>

<input type="button" value="click" onclick="test();" />             
</body>
</html>

test2.html: -

<html>
<head>
<title></title>
<SCRIPT>
function opener1(){
try{
    if(window.opener != null && !window.opener.closed)
    {

    }
    window.opener.test1();
    }catch(e){ alert(e.description);}
}
</SCRIPT>
</head>
<body oncontextmenu="return false"  ondragstart="return false" onload="opener1();">
<h1>Test Page</h1>

</body>
</html>

来自test2.html的test1.html中的调用方法无法正常工作..任何解决方案......都认可..谢谢

4 个答案:

答案 0 :(得分:5)

只能使用parent变量访问父窗口。 对opener1函数的以下修改应该使这成为可能

function opener1(){
    try{
        if(parent.window.opener != null && !parent.window.opener.closed)
        {
          parent.window.opener.test1();
        }

    }catch(e){ alert(e.description);}       
}

答案 1 :(得分:0)

代码对我来说似乎没问题。如果捕获异常,可以将其记录到控制台以获取有关错误的信息。确保test1.html和test2.html的域匹配,否则您将获得安全性异常。

答案 2 :(得分:0)

您可以尝试我的代码:

window.opener.document.location.href = url;

这适用于IE和Chrome。

window.opener.location.href = 'test.html';

这将打开“test.html”页面。

您可以在打开后关闭父窗口。

如果有效,请不要忘记将我的答案标记为正确。

答案 3 :(得分:0)

这是因为select * from table A inner join table B on INSTR(A.Column , B.Column)>0 对象的opener属性在 iPad Chrome 等设备上为空。