我有一个Called.html的页面如下:
<html>
<head>
  <script>
    function test(){
  document.write(document.getElementById("field").value);
}
  </script>
</head>  <input type="text" id="field" value="测试框"/>
  <input type="submit" id="bu" onclick="test()" /></html>效果是点击按钮就在页面上写出文本框中的值。然后我想用另一个页面ClickTest.html来控制这个Called.html,就是说在另一个页面中点击一个button,
就相当于在Called.html中点击按钮。但是在ClickTest.html中连Called.html中某个元素的value都得不到,提示该id的元素为null。
why呢?下面是ClickTest.html的代码。请高手们不吝赐教,最好能完全实现我想要的功能:)
<html>
<body><script type="text/javascript">
 function test(){
var win=window.open("Called.html"); 
win.document.getElementById("field").value="fsdff";
win.focus();
  }
</script>
<input type="button" onclick="test()" />
</body>
</html>

解决方案 »

  1.   

    "但是在ClickTest.html中连Called.html中某个元素的value都得不到,提示该id的元素为null。"
    肯定为NULL了,因为JS是有作用域的.
    纯粹用JS实现比较麻烦,后台实现比较方便和现实不过也可以这样实现你的需求.(伪代码,具体自行完善)
    1.点击ClickTest.html页面中的button,然后widnow.open('Called.html?特定参数',..)最小化打开Called.html页面.
    2.在Called.html页面用JS来判断传入参数是否有特定的参数,如果有,就调用 Called.html 中的特定Button.click事件.
    如:这个是JS获取传入参数的(Called.html)
        
            var strRight = location.search;
            document.write(strRight);然后在判断strRight是否含有特定参数(Called.html)
        
            var strRight = location.search;
            document.write(strRight);
            if(strHref.indexOf(特定参数)>0)
           {
                   document.getElementById(特定Button).click();
           }
      

  2.   

    试了下,在页面ClickTest.html的代码里面:
    <html>
    <body>
    <script type="text/javascript">
     function test(){
        var win=window.open("Called.html"); 
        alert(win);//这里添加下alert后就正常了,初步判断是打开新页面后页面焦点到新页面了,导致
         //下面的获取对应的id为field的dom节点为null
        win.document.getElementById("field").value="fsdff";
        win.focus();
      }
    </script>
    <input type="button" onclick="test()" />
    </body>
    </html>其实从解决这个问题的角度看,完全没必要这么干:
    可以把触发的逻辑放到Called.html里面的window.onload=function(){这里进行操作};
    就ok了
      

  3.   

    我做过这个,是用flash 来实现的,二个页面都放一个相应该swf文件...
      

  4.   

    <html>
    <body><script type="text/javascript">
    var win;
     function test(){
        win=window.open("Called.html");
      }
     function test1(){
        win.document.getElementById("field").value="fsdff";
        win.focus();
      }
    </script>
    <input type="button" onclick="test()" />
    <input type="button" onclick="test1()" />
    </body>
    </html>
      

  5.   


    恩,不错,我可以在ClickTest.html中写个form,然后提交到Called.html中,判断url就可以了。谢谢