需要对javascript函数进行微小更改

需要对javascript函数进行微小更改,javascript,google-chrome,iframe,Javascript,Google Chrome,Iframe,我需要在网页中获取iframe的内容。我发现下面的代码可以正确执行此操作--- 然而,我没有得到任何价值的iframe内容。我做错了什么?我不太懂javascript,所以我怀疑我的语法在什么地方出错了 下面是我的manifest.json的内容--- 下面还给出了当我尝试运行GoogleChrome扩展时在Javascript控制台中收到的错误消息- Uncaught TypeError: Cannot read property 'document' of undefined 您不能直接

我需要在网页中获取iframe的内容。我发现下面的代码可以正确执行此操作---

然而,我没有得到任何价值的iframe内容。我做错了什么?我不太懂javascript,所以我怀疑我的语法在什么地方出错了

下面是我的manifest.json的内容---

下面还给出了当我尝试运行GoogleChrome扩展时在Javascript控制台中收到的错误消息-

 Uncaught TypeError: Cannot read property 'document' of undefined

您不能直接访问或操作包含来自不同于您自己域的内容的
元素的内容。框架之间有一些通信方式,但它们要求两个域的内容都准备好这样做;您不能期望任何随机页面都能使用这些(相当新的)API

当然,从扩展名来看,规则是不同的。然而,如果你在一个普通的网页上玩弄这些代码,它就是不起作用


编辑-是代码的测试用例。它似乎工作得很好。

您无法直接访问或操作
元素的内容,这些元素包含不同于您自己的域的内容。框架之间有一些通信方式,但它们要求两个域的内容都准备好这样做;您不能期望任何随机页面都能使用这些(相当新的)API

当然,从扩展名来看,规则是不同的。然而,如果你在一个普通的网页上玩弄这些代码,它就是不起作用


编辑-是代码的测试用例。它似乎工作得很好。

您一定是在试图违反。您的“manifest.json”中有什么内容?您可能没有正确的权限。此外,正如@Shref所指出的,这是一个同源冲突。有一些方法可以绕过它。。。但从安全角度来看,这并不是很好。我在运行chrome时禁用了相应的安全标志,以便禁用同源策略-当我直接打开HTML网页时,我能够成功访问iframe的内容。但是,当我按照我的问题所述进行更改时,它不起作用……我将您的代码直接复制粘贴到本地文件,在Safari中打开它,它的工作方式与代码所述的一样。您必须尝试违反。您的“manifest.json”中有什么内容?您可能没有正确的权限。此外,正如@Shref所指出的,这是一个同源冲突。有一些方法可以绕过它。。。但从安全角度来看,这并不是很好。我在运行chrome时禁用了相应的安全标志,以便禁用同源策略-当我直接打开HTML网页时,我能够成功访问iframe的内容。但是,当我按照我的问题中所述进行更改时,它不起作用…我将您的代码直接复制粘贴到本地文件,在Safari中打开它,它的工作方式与代码状态相同。请参考我上面的评论。让我尝试一个类似的实验。。。我想你说的是“--allow file access from files”(允许从文件访问文件)开关。您好,请参考……我知道直接作为纯javascript注入html页面,代码可以正常工作。。我不明白的是,当相同的代码作为内容脚本从google chrome扩展注入页面时,为什么会出现错误消息……啊,好吧,我为没有认识到您特定场景的本质而道歉。我的Chrome扩展经验非常有限,我从未尝试过你正在做的事情。请参考我上面的评论。让我尝试一个类似的实验。。。我想你说的是“--allow file access from files”(允许从文件访问文件)开关。您好,请参考……我知道直接作为纯javascript注入html页面,代码可以正常工作。。我不明白的是,当相同的代码作为内容脚本从google chrome扩展注入页面时,为什么会出现错误消息……啊,好吧,我为没有认识到您特定场景的本质而道歉。我的Chrome扩展经验非常有限,我从未尝试过你正在做的事情。
var myIFrame = document.getElementById('iframe1'); // Creating an object of the iframe
var content = myIFrame.contentWindow.document.body.innerHTML; // Getting it's content into a variable

// Basically now, in the variable 'content' you have the content of your iframe,
// and can do anything you want with it.
alert('content: ' + content);    // here it is
{
  "name": "Link Submitter",
   "version": "1.0",
  "background_page": "bg.html",
  "description": "Link Submitter by SEO Power Toys",
   "browser_action": {
      "name": "Send Data",
      "default_icon": "icon.png",
      "default_title": "Send data to Link Submitter"      // optional; shown in tooltip
  },  
  "permissions": [ "tabs",
       "bookmarks",
           "http://*/*",
           "https://*/*",
            "unlimitedStorage"
     ]

}
 Uncaught TypeError: Cannot read property 'document' of undefined