Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过jQuery访问chrome扩展内容脚本中跨源iframe的HTML?_Javascript_Jquery_Google Chrome - Fatal编程技术网

Javascript 通过jQuery访问chrome扩展内容脚本中跨源iframe的HTML?

Javascript 通过jQuery访问chrome扩展内容脚本中跨源iframe的HTML?,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,我正在开发一个chrome扩展,它收集网站上的显示广告,用于一项研究。我试图通过jquery访问广告html,如下所示: chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){ if(request.todo == "CaptureAds"){ frames = $('iframe') for(var iter=0;iter<frames.length;iter++){

我正在开发一个chrome扩展,它收集网站上的显示广告,用于一项研究。我试图通过jquery访问广告html,如下所示:

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){   
if(request.todo == "CaptureAds"){
    frames = $('iframe')
    for(var iter=0;iter<frames.length;iter++){
        console.log('==================IFRAME====================')
        console.log('A')
        console.log(frames[iter])
        console.log('B')
        console.log(frames[iter].contentDocument)
        console.log('C')
        console.log(frames[iter].src)
    }
}

}

所以-好消息是您的代码中已经有了
“所有帧”:true
。你可能想要

"matches": [
        "<all_urls>"
      ],

iframe应该指向父帧。我不知道您的限制,但我想您可以找出什么是父页面(或者您可能已经知道了?),因此只需在iframe中说pagea加载了pageb。在这一阶段,您的内容脚本位于这两个页面中,因此您可以访问这两个页面。

您可以共享扩展清单吗?大体上,解决方案是在每个页面(包括框架中的页面)上加载一个内容脚本。由于内容脚本可以访问其加载到的页面的DOM,因此可以通过与内容脚本交换消息来访问iframe DOM。添加了manifest@Utkanos如何使相同的内容脚本加载到所有帧中?另外,我如何在不同的框架范围内唯一地识别相同的内容脚本?你可以用谷歌搜索如何在所有框架中添加内容脚本-谷歌在这方面有文档。至于如何在不同的上下文中识别相同的内容脚本,这取决于您传递的消息。给每个人一个ID,根据ID的不同,只让内容脚本的某些部分响应。@ammar075-如果绿色勾号符合答案,我将不胜感激。
"matches": [
        "<all_urls>"
      ],
window.document.referrer