window onload求解

不訴離傷 2017-02-23 11:18:48
chrome浏览器:
test1.htm用window.open打开同一个域中的test2.htm,正常来说当test2.htm文档加载完之后,应该会触发window.onload,但是现在却一直无法触发。
以下这个是test1.htm

<html>
<head>
<title></title>
<script language="javascript" type="text/javascript">

function init() {
document.getElementById('button').addEventListener('click', function () {
var win = window.open('test2.htm', '', 'width=600,height=500');
win.onload = function () {
console.log("into onload function");
var div = win.document.createElement('div')
div.innerHTML = 'Welcome!'
div.style.fontSize = '30px'
win.document.body.insertBefore(div, win.document.body.firstChild)
}

}, false);
}

</script>
</head>
<body onload="init();">
<button id="button">Open window</button>
</body>
</html>
...全文
174 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 5 楼 xieyijun1986 的回复:
[quote=引用 4 楼 Free_Wind22 的回复:] Chrome/56.0.2924.87 64位 版本一样。 你是用file:///还是http://测试的?
你倒是说对了,我是用file方式测试的。真是一个坑。 不过还是有疑问,我线上的用window.open打开的子页面,里面有load,在低版本的chrome上一样可以再进入onload里面,是何时才不行的,我也没找到相关chrome说明。总之非常感谢! [/quote]用api来添加试试,file测试有安全问题之类的,ajax会跨域,iframe和window.open之类的也会
2017-02-24
  • 打赏
  • 举报
回复
Chrome/56.0.2924.87 64位 版本一样。 你是用file:///还是http://测试的?
不訴離傷 2017-02-24
  • 打赏
  • 举报
回复
引用 4 楼 Free_Wind22 的回复:
Chrome/56.0.2924.87 64位 版本一样。 你是用file:///还是http://测试的?
你倒是说对了,我是用file方式测试的。真是一个坑。 不过还是有疑问,我线上的用window.open打开的子页面,里面有load,在低版本的chrome上一样可以再进入onload里面,是何时才不行的,我也没找到相关chrome说明。总之非常感谢!
不訴離傷 2017-02-24
  • 打赏
  • 举报
回复
引用 1 楼 Free_Wind22 的回复:
Chrome/56 测试正常,如果test2里面有onload就不会执行.
不是吧。。。 我是升级了之后不行的,现在是最新的版本 56.0.2924.87 (64-bit) 我原本以为是TEST2的onload会盖掉,但是在test2里什么都不写也不行。
webdev_l 2017-02-24
  • 打赏
  • 举报
回复
你在本页面打开了另一个页面,虽然 win 是一个对象,但不是 原本的 window 对象,你打印一下 win 和 window 你就明白了 window对象打印出来里面的属性window值也是window,你这个win 打印出来 window应该为空,所以不能调用onload事件
2017-02-24
  • 打赏
  • 举报
回复
Chrome/56 测试正常,如果test2里面有onload就不会执行.

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧