我已经浏览了谷歌documnetation和/或这个网站一段时间了,我找到了看似合适的答案,但它们对我不起作用,我猜也许是因为我是从执行脚本而不是从后台运行我的内容脚本。
这就是我要做的事情:我的扩展程序有一个弹出式javascript,它使用popup.js中的executeScript注入代码,该代码返回true或false(我尝试使用回调函数来接收返回值,但返回值是一个空数组而不是true或false)。
我尝试使用的第二种方法是在背景页面中使用onMessage和addListener onMessage,它们从未设法捕获事件..因此对我不起作用。 我的代码如下:
popup.js
$('#btnGetHtml').click(function () {
chrome.tabs.executeScript(null, { file: "jquery-3.1.1.js" });
chrome.tabs.executeScript(null,{
code:"*Ajax call with the success function evaluating a value and closing.*" }, function(hasSucceeded){
var temp = hasSucceeded; /*Here value is an empty array.*/ });
});
background.js
chrome.runtime.onInstalled.addListener(function() {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([{
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { urlContains: 'linkedin.com/in' }
})
],
actions: [new chrome.declarativeContent.ShowPageAction()]
}]);
});
});
chrome.extension.onMessage.addListener(function(result,sender,sendResponse){
if (result == 'ok'){
window.location.href='SuccessfullyAdded.html';
}
else{
window.location.href='ErrorEncountered.html';
}
});
的manifest.json
{
"name": "Add LinkedIn Profile to HRMS",
"version": "1.1.1",
"description": "תוסף למערכת הגיוס Hunter HRMS המאפשר לחפש מועמדים ברשת ה LinkedIn ולפתוח אותם בלחיצת כפתור במערכת הגיוס. מקור Sourcing ייחודי למערכת הגיוס.",
"background": {
"scripts": ["background.js"],
"persistent": false
},
"page_action": {
"default_icon": "images/icon32.png",
"default_title": "Add LinkedIn Profile To Hunter HRMS (by NilooSoft)",
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js" : ["getToken.js"],
"run_at":"document_end"
}
],
"permissions": [
"storage",
"activeTab",
"tabs",
"<all_urls>",
"cookies",
"declarativeContent",
"http://*/*",
"https://*/*"
],
"icons" : {
"48" : "images/icon32.png",
"128" : "images/icon32.png"
},
"manifest_version": 2
}
我想做的事情(也许可以在没有脚本调用的情况下进行调整)是根据内容脚本的响应将扩展html从一个html更改为另一个html。
其余的代码只是带有单个按钮功能的htmls,没有额外的逻辑。