使用chrome插件拦截JQuery中的ajax请求

时间:2017-05-15 21:31:15

标签: javascript jquery ajax google-chrome

我对javascript,JQuery,AJAX和Chrome插件都很陌生,我已经做了很多搜索,但我仍然坚持。试图构建一个chrome插件,它拦截特定AJAX请求的响应并稍微修改它。

AJAX响应在页面中插入一个表,我想修改该表的特定元素以包含不同的东西,这样当表更新时,而不是" Bob的Burgers&#34 ;它会说" Bill' s Burgers"。

到目前为止我尝试过的事情: 我知道如何制作基本的插件和搜索我找到了这段代码:

id

来自这个答案:How can I intercept ajax responses in jQuery before the event handler?

然而,答案是从2011年开始,在JQuery网站上他们谈论了一个ajax预过滤器(http://api.jquery.com/jQuery.ajaxPrefilter/),我应该使用它吗?

最后,我的清单文件会如何变化?更改应该在内容脚本或后台脚本中吗?

对此的任何指导将不胜感激。

的manifest.json

  jQuery.ajaxSetup({
        dataFilter: function (data, type) {
            //modify the data

            return data;
        }
    });

content.js

{
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
  "manifest_version": 2,
  "name": "extensiontest",
  "version": "0.2",
  "content_scripts": [
  {
    "matches": ["<all_urls>"],
    "js": ["jquery-3.2.1.min.js","content.js"]
  }
],
"browser_action": {
  "default_icon": "icon.png",
    "default_popup":"popup.html"
}

}

popup.js

chrome.runtime.onMessage.addListener(
      function(request, sender, sendResponse) {
        if( request.message === "start" ) {

                    $( document ).ajaxSuccess(function( event, xhr, settings ) { console.log(event); console.log(xhr); console.log(settings); });

             }
      }
    );

popup.html

$(document).ready(function(){
    $('body').on('click', '#button1', function(){
    chrome.tabs.query({currentWindow: true, active: true}, function (tabs){
    var activeTab = tabs[0];
    chrome.tabs.sendMessage(activeTab.id, {"message": "start"});
   });
});
});

0 个答案:

没有答案