如何从我的chrome.tabs.executeScript代码

时间:2017-02-28 13:13:11

标签: javascript google-chrome-extension content-script

我已经浏览了谷歌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,没有额外的逻辑。

0 个答案:

没有答案