JQuery - 写入开启窗口

时间:2009-06-23 20:15:33

标签: javascript jquery html

我有一个HTML页面,可以通过JavaScript打开另一个页面。当用户单击其他页面中的按钮时,我想通过JQuery在开始页面的DIV中发布消息。我不能把手指放在上面,但我似乎无法让它发挥作用。这是我的开场白页

<html>
  <head>
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
  </head>

  <body>
    <input type="button" onclick="window.open('dialog.html', '_blank', 'height=200, width=300');" value="launch!" />
    <div id="testDiv"></div>
  </body>
</html>

当用户点击“发布!”时按钮,将出现一个对话框。对话框的代码如下所示:

<html>
  <head>
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
  </head>

  <body>
    <input type="button" onclick="updateOpener()" value="Update Opener" />
    <script type="text/javascript">
      function updateOpener()
      {
        var testDiv = window.opener.jQuery("#testDiv");
        if (testDiv != null) {
      alert("here");
      testDiv.html("Updated!");
        }
      }
    </script>
  </body>
</html>

令人惊讶的是,出现了警告框。但是,我似乎无法在我的开始页面中更新DIV的HTML。有谁知道怎么做?

4 个答案:

答案 0 :(得分:5)

您正在引用“confirmDiv”。 DIV在哪里?

答案 1 :(得分:2)

如果父页面(开场白)位于另一个域上,则无法执行此操作。否则,您的代码将完美运行。

另外,你的!= null检查可能没有做你认为它正在做的事情,因为jQuery函数永远不会返回null。如果要检查是否存在元素,则需要这样做...

var el = $("#myElementId");
if(el.length == 0)
  alert('Not found!');

答案 2 :(得分:0)

嗯,它适用于Firefox 3.0.11,IE8和Chrome 2 ......(即,对话框按钮更新了开启页面中的HTML,说'已更新!'。)

答案 3 :(得分:0)

奇怪的是,你的例子在我的Chrome,IE 8和FireFox中运行正常。你还有其他细节吗?