在编写chrome扩展时可以通过content-scripts.js给tab页注入一段js,但是在content-scripts.js当中要想获取扩展中的数据或者调用扩展中的方法就必须使用message机制,搜索了很多都是过时的方法,第一时间就应该查看官方的chrome 开发手册。百度搜索到的sendRequest, runtime.sendMessage等等,都不好使,而且大都是从tab向扩展中发起request。
发送方(这里是从扩展发送)
chrome.tabs.getSelected(function callback(tab) {
chrome.tabs.sendMessage(tab.id, { greeting: _this.final_text }, function (response) {
console.log(response);
});
})
接收方(写在了注入页面的content-scripts.js中)
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
document.getElementsByName("iot-iframe")[0].contentWindow.document.querySelector(".el-textarea__inner").value = request.greeting;
});