我可以在Chrome扩展程序的弹出式HTML页面上使用Programmatic Injection吗?

时间:2016-01-27 21:04:10

标签: javascript iframe google-chrome-extension

正如标题所暗示的那样,我正在尝试使用内容脚本或任何其他编程方式来操纵iframe中显示的网站,该网站位于我的Chrome扩展程序的弹出式HTML文件中。 iframe的src将是第三方网站。

我通常从chrome扩展程序的后台页面执行内容脚本的方式如下:

//background.js

chrome.contextMenus.create({
    title: "xxx", 
    contexts:["page"],
    id: "ctx1"
});
chrome.contextMenus.onClicked.addListener(function(info,tab) {
     if(infoItemId === "ctx1"){
         console.log("control worked")
         control(info,tab)  
     }
});
function control(info,tab) {
   chrome.tabs.executeScript(tab.id,{file:"content.js"});
}

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    alert(JSON.stringify(tab) +"\n\n")
    chrome.tabs.executeScript(null,{"file":"content.js"});
})

我可以使用以下代码从后台页面访问iframe:

var views = chrome.extension.getViews({type:'popup'});
var iframe = views[0].document.getElementById("Frame1") // "Frame1" id the id of my iframe HTML element as declared in my popup.html file

我不确定如何重新配置​​我的后台页面,以便将popup.html页面中的iframe作为目标,而不是活动的浏览器标签。我想我需要将上下文菜单的“contexts”属性更改为“frames”或“browser_action”,并且我可能需要创建一个与我的popup.html文件具有相同URL的新选项卡。我花了很长时间研究这个问题,几乎没有取得任何进展,所以任何帮助都将不胜感激。

0 个答案:

没有答案