谷歌浏览器不能使用opener属性的问题和解决

我先放一个简化的案例:

父页面:

<html>
<head>
<title>HTML_CSSS</title>
<script type="text/javascript">
function open_func() {
window.open("user.html","width=250","height=150");
}
</script>
</head>
<body>
编号: <input type="text" id="numid"/><br/>
姓名: <input type="text" id="nameid"><br/>
<input type="button" value="选择" οnclick="open_func()"/>
</body>
</html>


子页面:

<html>
<head>
<title>USER</title>
</head>
<body>
<table>
<tr>
<td>操作</td>
<td>编号</td>
<td>歌名</td>
</tr>
<tr>
<td><input type="button" value="选择" οnclick="s1('100','光辉岁月')"></td>
<td>100</td>
<td>光辉岁月</td>
</tr>
<tr>
<td><input type="button" value="选择" οnclick="s1('101','冷雨夜')"></td>
<td>101</td>
<td>冷雨夜</td>
</tr>
<tr>
<td><input type="button" value="选择" οnclick="s1('102','海阔天空')"></td>
<td>102</td>
<td>海阔天空</td>
</tr>
</table>

<script type="text/javascript">
function s1(num1,name1) {
var pwin = window.opener;
pwin.document.getElementById("numid").value = num1;
pwin.document.getElementById("name1").value = name1;
window.close();
}
</script>

</body>
</html>


症状:能弹出子页面没毛病,但问题是谷歌浏览器在子页面上点击选择按钮毫无反应,IE上需要通过允许,Firefox问题.

原因:是opener属性的缘故,但不是谷歌浏览器的兼容性问题,首先要知道js安全机制原则上是不能访问本地文件的,并且谷歌浏览器的安全设置级别比较高,认定你在"本地"应用opener属性的时候是通过js打开本地文件,所以操作被截止.

但是,在实际开发环境中是不会产生这个问题的,因为当把页面文件部署到服务器上,通过谷歌浏览器输入  localhost/******   或者   127.0.0.1/******  访问该页面,是没有毛病的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值