Javascript从打开的窗口中获取元素

时间:2012-02-15 10:37:04

标签: javascript browser getelementbyid

我需要打开一个新窗口并返回其中包含的元素。

假设我们有第A页和第B页,我想:

  • 从A
  • 打开B.
  • 获得对B
  • 感兴趣的元素
  • 将该元素返回给A
  • 我试图以这种方式这样做,但它不起作用:

    var newwindow = window.open("http://www.example.com");
    var elem = newwindow.document.getElementById('my-id').value;
    

    我哪里错了?有人对我有什么建议吗?

    2 个答案:

    答案 0 :(得分:5)

    由于您使用的是绝对URI,我将假设您尝试从其他网站获取数据。因此,您将被the same origin policy屏蔽。

    如果情况并非如此,那么您可能会在完成加载之前尝试阅读文档的内容,从而达到竞争条件。

    如果您提供了浏览器几乎肯定会登录到其JS控制台的错误消息,那么帮助会更容易。

    答案 1 :(得分:0)

    如果新窗口具有相同的协议,域和端口,则代码应该有效。如果它在另一个域上,出于安全原因,您无法执行此操作。

    如果您控制两个页面,则可以使用window.postMessage