【问题标题】:JQuery - Write to opener windowJQuery - 写入打开器窗口
【发布时间】:2009-06-23 20:15:33
【问题描述】:

我有一个 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。有谁知道怎么做?

【问题讨论】:

  • 他刚刚用他的编辑修复了它。

标签: javascript jquery html


【解决方案1】:

您指的是“confirmDiv”。那个 DIV 在哪里?

【讨论】:

  • 这是 OP 的问题。他在这个答案之后修复了他的代码,现在它可以工作了。
【解决方案2】:

如果父页面(打开器)位于另一个域中,则不能这样做。否则,您的代码将完美运行。

此外,您的 != null 检查可能没有按照您的想法进行,因为 jQuery 函数永远不会返回 null。如果你正在检查一个元素是否存在,你需要这样做......

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

【讨论】:

    【解决方案3】:

    嗯,它适用于 Firefox 3.0.11、IE8 和 Chrome 2...(即 dialog.html 按钮将打开页面中的 HTML 更新为“已更新!”。)

    【讨论】:

      【解决方案4】:

      奇怪的是,您的示例在 Chrome、IE 8 和 FireFox 中对我来说效果很好。你还有其他细节吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-08
        • 2014-08-08
        相关资源
        最近更新 更多