2011-12-30 75 views
0

我正在嘗試使用chrome的實驗性WebRequest URI來進行資源轉換 - 以便URL鏈接到不同的後端資源,而不是它們將向外執行的操作。在Firefox中,我已經習慣了註冊一個新的協議處理程序,使:如何從Chrome的其餘部分隱藏WebRequest重定向?

myscheme:user_prefs 

真正連接到網絡服務器的一些像這樣:

https://myhost/prefs?token=bla 

我有點失落,有沒有在Chrome中執行類似操作的方式?

+0

有一些HTML5 API。我認爲。但我不知道它是否有效。 – gengkev 2012-01-12 01:43:50

回答

0

我想你可以使用WebRequest API(請確保您使用測試版或更高版本):

chrome.webRequest.onBeforeRequest.addListener(function(details) { 
    if (details.url.indexOf("myscheme")!=0) 
    return; 
    var options = details.url.substr(details.url.indexof(":")); 
    return { redirectUrl: "https://myhost/prefs?" + options }; 
},{},["blocking"]); 

...這是完全未經測試的代碼。隨意測試它,調試它,修復它,但是請記住,你需要問一些權限:"webRequest", "webRequestBlocking", "<all_urls>"

+0

這看起來不錯,我們確實得到了這個工作 - 我的問題更多地是關於從前端用戶隱藏這些webrequests。當我這樣做時,URL https:// myost/prefs?bla顯示在URL欄中。有沒有辦法改變這種情況? – Daniel 2012-01-13 16:19:13

+0

您可以嘗試使用navigator.registerProtocolHandler API,但這對我而言並不一致,並且需要您嘮叨用戶。我甚至不知道它是否符合你的要求 - 所以如果這樣做不起作用,我就沒有辦法想到寫一個NPAPI插件。 – gengkev 2012-01-14 02:10:17

+0

我從來沒有聽說過registerProtocolHandler - 是專門用於插件還是整個瀏覽器?我將不得不圍繞它玩耍(你有沒有最喜歡的資源?)。另外 - 我已經看過NPAPI插件,但它們似乎只是爲了在一個頁面上爲一個屏幕平方生成內容而設計的,有沒有辦法解決這個問題呢? – Daniel 2012-01-17 15:36:44