2011-02-01 13 views
17

Obecnie buduję rozszerzenie Google Chrome, które testuje określone wzorce i jeśli zostanie znalezione, przekierowuje je pod nowy adres URL.Jak przekierować na adres URL za pomocą skryptu rozszerzenia Google Chrome i treści?

Mam sprawdzanie wzorca za pomocą skryptu treści, a teraz nie jestem pewien, w jaki sposób mogę kontynuować pobieranie przekierowania. Jakieś sugestie ?

+5

@jmort 'window.location' nie działa, ponieważ skrypty treści są nieuprzywilejowanych. Co więcej, 'window.location.href' zwraca bieżącą lokalizację, ale nie jest to metoda, więc nie mogę jej zastąpić. – Sathya

Odpowiedz

28

Wysłać przekierowanie url ze skryptu zawartości do tła strony:

chrome.runtime.sendMessage({redirect: "http://redirect"}); 

W url tła strony zakładkę Aktualizacja, które mogłoby spowodować przekierowanie:

chrome.runtime.onMessage.addListener(function(request, sender) { 
    chrome.tabs.update(sender.tab.id, {url: request.redirect}); 
}); 
+0

Doskonale, dziękuję! Znalazłeś to także -> http://code.google.com/chrome/extensions/extension.html#event-onRequest i film tutaj -> http://code.google.com/chrome/extensions/content_scripts. html – Sathya

-3

Nie współpracowałem z rozszerzeniami Google Chrome ... ale możesz użyć jednego z these ways.

Jak rozumiem, te interfejsy API rozszerzeń pozwalają wstrzyknąć javascript na stronę ... po tym, że jej prosta manipulacja window.location ...

+1

Jak wspomniano, skrypty zawartości są nieuprzywilejowane, więc nie można tego zrobić. – Sathya

1

Jeśli chcesz dostępu plik wewnątrz WebExtension, można dodać plik i jego przesłanki do web_accessible_resources w manifest.json, jak w

{ 
    ... 
    "web_accessible_resources": [ 
    "images/*.png", 
    "style/double-rainbow.css", 
    "script/double-rainbow.js", 
    "script/main.js", 
    "templates/*" 
    ], 
    ... 
} 
Powiązane problemy