jquery和内容脚本之间的通信

时间:2013-01-10 11:49:38

标签: jquery google-chrome-extension setinterval

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

"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){

  }
});
});

}

1 个答案:

答案 0 :(得分:0)

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

<强>的manifest.json

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

<强>的script.js

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

为什么不使用recursive setTimeout()代替SetInterval()