Ran*_*Rag 5 javascript google-chrome google-chrome-extension
我正在试验chrome.extensionAPI.
的manifest.json
{
"name": "First",
"version": "1.0",
"manifest_version": 2,
"description": "First extension",
"background": {
"scripts": ["test.js"]
},
"page_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"content_scripts": [ {
"js": [ "jquery.min.js", "display.js" ],
"matches": [ "http://*/*", "https://*/*" ]
} ],
"permissions" : [
"tabs",
"http://*/*", "https://*/"
]
}
Run Code Online (Sandbox Code Playgroud)
display.js
alert("inside display.js");
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse){
alert("inside msg");
var time = request.sel_text;
alert(time);
});
Run Code Online (Sandbox Code Playgroud)
test.js
function check(tab_id, data, tab){
if(tab.url.indexOf("google") > -1){
chrome.pageAction.show(tab_id);
chrome.tabs.executeScript(null, {"file" : "display.js"}) ;
}
};
chrome.tabs.onUpdated.addListener(check);
Run Code Online (Sandbox Code Playgroud)
popup1.js
function myfunc(){
var x = $('#options option:selected').text();
alert(x);
chrome.extension.sendMessage({sel_text: x});
}
$(document).ready(function(){
$('#options').change(myfunc);
});
Run Code Online (Sandbox Code Playgroud)
现在,当我的页面加载时,我会three(3)弹出说法,inside display.js但chrome.extension.onMessage.addListener从未调用过.
那么,我做错了什么.我们可以chrome.extension.*从内容脚本访问API 吗?
chrome.extension.sendMessage仅触发onMessage扩展程序范围内的侦听器,不包括内容脚本.
您可以使用该chrome.tabs.sendMessage方法通知内容脚本,如下所示:
function myfunc() {
var x = $('#options option:selected').text();
var message = {sel_text: x};
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
var tabId = tabs[0].id;
chrome.tabs.sendMessage(tabId, message);
});
}
Run Code Online (Sandbox Code Playgroud)