2013-02-11 46 views
0

有沒有辦法在請求發送到網站之前獲取url字符串?我發現了一個關於後這裏:在網址請求之前發送了什麼事件?

https://forums.mozilla.org/addons/viewtopic.php?f=7&t=11259&p=26111

,但我無法找到任何東西如何「勾入瀏覽器:OpenLocation命令」中的插件SDK。

基本上我在做什麼是這樣的:

  1. 查詢的網址是即將被要求看它是否我的正則表達式匹配。
  2. 如果匹配,請更改發送到網站的userAgent。 (通過設置general.userAgent.override)

因此,我無法檢查頁面開始加載後的URL,因爲請求已經發送,我寧願不重新加載頁面,因爲它會延遲瀏覽。

謝謝!

回答

1

是的,看看這裏的文檔: https://developer.mozilla.org/en-US/docs/XUL/School_tutorial/Intercepting_Page_Loads#HTTP_Observers

此代碼將在附加SDK工作,它會檢查URL匹配mysite,然後設置一個MyBrowser/1.0的User-Agent只是該網站。這僅在檢測到時才進行更改,而不使用pref userAgent.orverride。

var chrome = require("chrome"); 

chrome.Cc["@mozilla.org/observer-service;1"].getService(chrome.Ci.nsIObserverService).addObserver({ 
    observe : function(subject, topic, data) { 
      var channel = subject.QueryInterface(chrome.Ci.nsIHttpChannel); 
      if (/mysite/.test(channel.originalURI.host)) { 
       channel.setRequestHeader("User-Agent", "MyBrowser/1.0", false); 
      } 
    } 
},"http-on-modify-request",false); 
相關問題