javascript - chrome事件选项卡url传递到php文件

标签 javascript google-chrome tabs google-chrome-extension

我正在为 Chrome 制作扩展,我需要使用 php 代码将事件选项卡的 url 传递到文件。我的manifest.json代码:

{  "name": "demo", 
   "version": "1.0",
   "manifest_version": 2,
   "description": "Making your first Google Chrome extension.",
   "browser_action": {
       "default_icon": "icon.png",
       "default_popup": "chrome.html"
   },
   "permissions": [
       "http://www.mysite.com/",
   "tabs"
   ]
}

和 AJAX 代码:

window.onload = function() {
var XHR = new XMLHttpRequest;
chrome.tabs.query({active:true,currentWindow:true},
      function(tab){tabUrl = tab.url;});
XHR.open('GET', 'http://www.mysite.com/chrome/chrome.php?tab='+tabUrl+'', true);
XHR.onreadystatechange = function () {
  if (4 == this.readyState) {
    var status = this.status;
    if (400 > status) {
      var responseText = this.responseText;
      if (responseText) {
        document.getElementById('resultado').innerHTML = responseText;
      }
    }
  }
};
XHR.send();
}

感谢您的帮助。

最佳答案

我认为你应该这样做,因为在你的代码中,由于 tabs.query 是异步的,当 XHR.send();执行时 tabUrl 尚未设置。

window.onload = function() {
  var XHR = new XMLHttpRequest;
  chrome.tabs.query({
    active: true,
    currentWindow: true
  }, function(tab) {

    tabUrl = tab.url;
    XHR.open('GET', 'http://www.mysite.com/chrome/chrome.php?tab=' + tabUrl + '', true);
    XHR.onreadystatechange = function() {
      if(4 == this.readyState) {
        var status = this.status;
        if(400 > status) {
          var responseText = this.responseText;
          if(responseText) {
            document.getElementById('resultado').innerHTML = responseText;
          }
        }
      }
    };
    XHR.send();

  });

}

关于javascript - chrome事件选项卡url传递到php文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13406511/

相关文章:

javascript - 为什么这个 JavaScript 函数不起作用?

javascript - 使用 jquery 和 codeigniter 进行 url 格式化

jquery - Chrome 扩展 : refuse header "date" in ajax request

dart - 有没有办法在 flutter 中设置多色标签栏?

javascript - Chrome 扩展程序动态创建 HTML

javascript - Android 浏览器 html5 音频无法播放

Android ICS + ActionBar Tabs + 方向改变

javascript - 如何在 ReactJs 中打印出用户输入的数组

javascript - 关于如何在phonegap中设置sqlite DB的说明

javascript - 为什么我不能使用 chrome 扩展注入(inject) socket.io