在我的内容脚本中,我使用这种方法来访问网页的变量:
function exec(fn) {
var script = document.createElement('script');
script.setAttribute("type", "application/javascript");
script.textContent = '(' + fn + ')();';
document.body.appendChild(script); //run the script
document.body.removeChild(script); //clean up
}
exec( function(){
var test = websiteVar
chrome.runtime.sendMessage("extensionID", {test: test}, function(response) {
});
});
如果它表示extensionID,如果我对其进行硬编码,则可以正常工作。但是,我不能使用chrome.runtime.id
,因为它是在页面中注入的。我想我读过它们不能在同一个环境中工作。
有没有办法以编程方式获取扩展ID?
答案 0 :(得分:1)
上述wOxxOm的例子:
function exec(fn) {
var script = document.createElement('script');
script.setAttribute("type", "application/javascript");
script.textContent = '(' + fn + ')("' + chrome.runtime.id +'")';
document.body.appendChild(script); //run the script
document.body.removeChild(script); //clean up
}
exec( function(extensionID){
var test = websiteVar;
chrome.runtime.sendMessage(extensionID, {test: test}, function(response) {
});
});