1

我正在尝试访问新打开的窗口(window.open)上的元素,然后更改其 style.display 属性以使其可见。我尝试了不同的版本,但在我最好的版本中,它只在某些时候有效。它似乎受到正在处理的其他事物数量的影响,因为当我打开第三个窗口时,它需要很长时间并且不起作用。有时它甚至不适用于第一个打开的窗口。

    var poppy=null;
    function openAlf(anch,id) {
    poppy=window.open("http://mrsbos.wikispaces.com/Alphabetical+Code+list#"+id,
    "_blank"," width=550, height=600, left=500,top=0");

    setTimeout(showEl,1000);

     }

    function showEl(){

    poppy.document.getElementById('area000t').style.display="block";
    }

在另一个版本中,我将 area_id 传递给 showEl 函数。那个也不起作用,这很遗憾,因为我需要能够使用 openAlf() 函数打开不同的元素。我认为这是一个时间问题。有谁知道我能做些什么?

或者有没有办法我可以从字母页面读取元素,而不用打开它,而不是用 window.open 和 mywindow.write 将它们写入一个新窗口

4

2 回答 2

0
      var poppy=null;




      function openAlf(anch,id) {
        poppy=window.open("http://mrsbos.wikispaces.com/Alphabetical+Code+list",
       "_blank"," width=550, height=600, scrollbars=yes,left=500,top=0");

      readyState=setTimeout(function(){checker(id) },1000);
       }

      function checker(id){
      console.log("checker");
      try{
      console.log("try");

      poppy.document.getElementById(id).style.display="block";
      clearInterval(readyState);
       }

       catch(err){
       console.log("catch");
       readyState=setTimeout(function(){checker(id) },1000);
       }
       }

该解决方案有效

于 2013-07-25T12:08:12.707 回答
0

这是一个相当棘手的任务。如果你乐于使用 jQuery,你可以在这篇文章中找到一个可能的解决方案:

使用jquery从父窗口遍历/操作新窗口

于 2013-07-24T12:09:23.627 回答