为了账号安全,请及时绑定邮箱和手机立即绑定

从Chrome的扩展程序内容脚本访问iframe内容

从Chrome的扩展程序内容脚本访问iframe内容

开心每一天1111 2019-11-30 13:57:04
我正在做一个插件来对界面进行一些转换。我不断收到unsafe javascript attempt to access frame with url.... Domains, protocols and ports must match(典型的跨网站问题)但作为扩展程序,它应该可以访问iframe的内容http://code.google.com/chrome/extensions/content_scripts.html ...没有人知道如何访问它的内容以便可以被捕获吗?
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

我知道这是一个老问题,但是我最近花了半天时间来解决它。通常,创建iframe看起来像这样:


var iframe = document.createElement('iframe');

iframe.src = chrome.extension.getURL('iframe-content-page.html');

该框架与页面的来源不同,您将无法获得其DOM。但是,如果仅出于CSS隔离的目的创建iframe,则可以采用另一种方式:


var iframe = document.createElement('iframe');

document.getElementById("iframe-parent").appendChild(iframe);

iframe.contentDocument.write(getFrameHtml('html/iframe-content-page.html'));

.......

function getFrameHtml(htmlFileName) {

    var xmlhttp = new XMLHttpRequest();

    xmlhttp.open("GET", chrome.extension.getURL(html/htmlFileName), false);

    xmlhttp.send();


    return xmlhttp.responseText;

}

.......

"web_accessible_resources": [   

    "html/htmlFileName.html",

    "styles/*",

    "fonts/*"

]

之后,您可以使用iframe.contentDocument访问iframe的DOM


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 2297 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信