-1

我通过我的扩展加载了以下内容脚本 -

"content_scripts": [
        {
          "matches": ["https://blah.blah/*"],      

          "js": ["src/script/lib/jquery-1.8.3.min.js" ,
                "src/script/Ext/Ext.ContentScript.js" ]
        }
    ]

在内容脚本中,我有一个函数,它使用 jquery 的 Ajax 函数使用 setInterval 方法定期轮询服务器。

不知何故,一旦调用该方法, setInterval 方法中的函数就无法访问任何 jquery 操作。罪魁祸首似乎是 chrome.storage.local api。回调无权访问其他内容脚本(本例中为 Jquery)

chrome.storage.local.get("savedData", function (userInfo) {

setInterval(function(){

//Fails to recognize the ajax method, throws "has not method ajax"

$.ajax({url:reqUrl, 
   success:function(data){

  }
});
});

}
4

1 回答 1

0

当我尝试您的方案时,它对我有用

清单.json

{
    "name": "",
    "description": "",
    "version": "1",
    "manifest_version": 2,
    "permissions": [
        "<all_urls>"
    ],
    "content_scripts": [
        {
            "matches": [
                "https://www.google.co.in/*"
            ],
            "js": [
                "jquery.js",
                "script.js"
            ]
        }
    ]
}

脚本.js

setInterval(function(){
$.ajax({
  url: "http://www.w3schools.com/cssref/css_selectors.asp",
  success:function (data){
    console.log("Success..");
  }});
},11000);

你为什么不使用recursive setTimeout()而不是SetInterval()

于 2013-01-10T12:14:08.143 回答