想实现一个功能,即用window.open打开一个新窗口,对这个新窗口绑定onload事件,然后通过form.submit().提交一些数据过去,但是试了好多次绑定的onload事件无效,不知道哪里有问题,问下各位js大虾哪里有问题,源代码如下:
function aaa(url){
  
  newwin=window.open(url,"newwin");
  newwin.moveTo(0,0);
  newwin.focus();  newwin.attachEvent("onload",function(){
  newwin.print();
  setTimeout("newwin.close()",5000);
  });
  
  form99.target="newwin";
  form99.action=url;
  form99.submit();
  
}

解决方案 »

  1.   

    但是好像把form99提交的那三句语句注释掉,newwin窗口是能触发onload事件的??
      

  2.   

    窗口之间的操作只能读,不能写。换句话说,比如A页面通过链接或js打开一个新页面B,则A只能获取B的一些dom元素的引用,以及js变量,函数的引用,当然还可以调用这个函数。而不能往B里面写入东西,包括插入dom元素,绑定事件处理函数等
      

  3.   

    我的ie8怎么不会触发?你的newwin打开的页面本身就有onload吧?
      

  4.   

    楼主还需要注意一个问题, attachEvent 这个方法只在IE下面用的, 别的浏览器不是这么写的,用的是监听器, 检查下吧, 
      

  5.   


    目标url页面是没有onload句柄的,而且在A页面绑定事件后,打开B也页面只触发一次事件,刷新后不再出发了,这点也没搞懂,楼上的attachEvent在IE下用我知道的,现在在做测试,谢谢,我翻了下JS权威指南,只看到相关关于域安全JS调用的规则,域外不能访问,关于不同页面JS调用只读不能写的规则我要不再去试试,权威指南上没找到~~