5

Chrome'un webRequest API'sini, this answer ile ne yaptığını yineleyerek, ancak ad alanının deneysel kısmı olmadan, webRequest artık gerekli olmadığından artık gerekmeyen bir Chrome uzantısı oluşturmaya çalışıyorum Chrome'un bagajında. Ben benim tezahür dosyasındaGoogle Chrome webRequest API kullanarak basit iletme

<!DOCTYPE html> 
<html> 
    <head> 
    <script> 
function interceptRequest(request) { 
    return { redirectUrl: 'http://www.yahoo.com' } 
} 
chrome.webRequest.onBeforeRequest.addListener(interceptRequest, { urls: ['*://*.google.com/*'] }, ['blocking']); 
    </script> 
    </head><body></body> 
</html> 

: Daha önce soru soruldu dayanarak

{ 
    "name": "My Extension", 
    "version": "0.1", 
    "background_page": "background.html", 
    "permissions" : [ 
    "webRequest", 
    "webRequestBlocking", 
    "*://*/*" 
    ] 
} 

, ben http://www.yahoo.com bildirmeleri gerekmektedir Ben eriştiklerinde benim arka plan sayfasında

ben kodu var https://www.google.com ve uzantım, herhangi bir iletme etkisi olmadan https://www.google.com yükler yüklenir. Bir kullanıcıyı Chrome'daki webRequest API'sını kullanarak bir URI’dan diğerine iletmek için ne yapmam gerekiyor?

+0

Bu garip. Düşünebildiğim tek şey, herhangi bir senkronize XHR'yi yüklemediğinizden veya Chrome dokümanlarından arka plan sayfanızdaki herhangi bir komut dosyası etiketini çevrimiçi kaynaklardan almadığınızdan emin olmaktır. – gengkev

cevap

3

Url eşleme şablonunuz doğru değil. Sadece bir eğik çizgi eklemeniz gerekir:

{urls: ['https://www.google.com/']} 

Alternatif olarak, kullanabilirsiniz: '*: //www.google.com/': // www *', tüm protokolleri maç için. google.com/*' sadece etki ötesine maç için ve '*: http://code.google.com/chrome/extensions/trunk/match_patterns.html

: //*.google.com/*' vb tüm alt etki alanları, protokolleri ve yolları,

Bkz maç için

+0

Geri bildirim için teşekkürler, ancak bu çözümlerin hiçbiri, tarayıcının Yahoo'ya yönlendirilmesine neden oldu. Yukarıdaki veya başka bir şey eklemediğim bir şey görüyor musunuz? –

+1

Kodunuzla bir uzantı oluşturdum ve yukarıdaki yorumda açıklandığı gibi 'urls 'alanına bir iz bırakarak eğik çizgiden sonra benim için iyi çalışıyor. Fark ettiğim tek şey bildirim dosyasında 'content_scripts'… 'content.js' dosyanız var mı? Bu işlevsellik için buna ihtiyacınız yok. Tüm yollarınız doğru mu (background.html ve content.js uzantınızın kökünde)? Ayrıca, background.html dosyanızdaki JS kodunuzun etrafındaki '' etiketlerini kaydırın (sarılmış olduğunu varsaydım - sonuçta bir js dosyası değil html dosyasıdır). – rgthree

+0

'/' eklenmesi ve içerik.js'nin manifestten çıkarılmasıyla bile, http://www.google.com adresine erişirken sayfanın iletilmesini sağlayamadım. Dosyalarımın kaynağını daha kapsamlı olacak şekilde güncelledim (artık dosyaların içeriklerini bütünüyle içerirler) ve manifestodaki gereksiz öğeleri kaldırmak için. Yukarıdaki dosyalarda, yarattığınız sürümden farklı bir şey göze çarpıyor mu? Bunu işe almakla gerçekten ilgileniyorum. –