Chrome扩展将popup.js中的变量传递到内容脚本



我有popup.js脚本:

function FireInjectionScript() {
//Want to Pass this variable.
var updateTextTo = document.getElementById('mat_no').value.trim()
chrome.tabs.executeScript({
file: 'InjectionScript.js'
}); 
}
document.getElementById('caseButton').addEventListener('click', FireInjectionScript);

在谷歌和stackoverflow的前5页中,我几乎已经完成了所有问题,但无法让这个简单的参数通行证发挥作用。

试过这个,这个,这个。许多问题都相当陈旧。这在铬合金中是不可能的吗?我的最终目标是传递变量,然后从WebApi返回数据,根据传递的变量填充页面上的一些控件——我是不是搞错了树。非常感谢任何指导。

您可以使用消息传递将数据发送到注入的脚本,但您需要选项卡Id。

popup.js

function FireInjectionScript() {
//Want to Pass this variable.
var updateTextTo = document.getElementById('mat_no').value.trim();
chrome.tabs.query({active: true, currentWindow: true}, tabs => {
chrome.tabs.executeScript(tabs[0].id,{file: 'InjectionScript.js'},()=>{
chrome.tabs.sendMessage(tabs[0].id,{myVar:updateTextTo});
});
}); 
}
document.getElementById('caseButton').addEventListener('click', FireInjectionScript);

InjectionScript.js

chrome.runtime.onMessage.addListener(message=>{
if (message.myVar) {
//here you can access message.myVar
}
});

最新更新