在注入的脚本中以编程方式获取chrome扩展名id

时间:2017-09-16 05:26:15

标签: javascript google-chrome-extension

在我的内容脚本中,我使用这种方法来访问网页的变量:

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?

1 个答案:

答案 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) {

    });

});