-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.localapiのようです。コールバックは他のコンテンツスクリプト(この場合は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"
            ]
        }
    ]
}

script.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 に答える