TL; DR sklepu internetowego nie może być przez skrypty rozszerzeń, a flaga, która wcześniej pozwolił Ci to zrobić (--allow-scripting-gallery
) has been removed in Chrome 35.
Rozszerzenia Chrome nie mogą wykonywać skryptów treści ani wstawiania CSS do Chrome Web Store. Jest to wyraźnie zdefiniowane w the source code, w funkcji IsScriptableURL
(kliknij na poprzednie łącze, aby zobaczyć pełną logikę).
// The gallery is special-cased as a restricted URL for scripting to prevent
// access to special JS bindings we expose to the gallery (and avoid things
// like extensions removing the "report abuse" link).
// TODO(erikkay): This seems like the wrong test. Shouldn't we we testing
// against the store app extent?
GURL store_url(extension_urls::GetWebstoreLaunchURL());
if (url.host() == store_url.host()) {
if (error)
*error = manifest_errors::kCannotScriptGallery;
return false;
}
manifest_errors::kCannotScriptGallery
definiuje here:
const char kCannotScriptGallery[] =
"The extensions gallery cannot be scripted.";
Błąd można oglądać w konsoli tła strony, gdy używasz chrome.tabs.executeScript
wstrzyknąć skrypt na karcie Web Store. Na przykład, otwarte https://chrome.google.com/webstore/, a następnie wykonać następujący skrypt na stronie tle przedłużenia (za pośrednictwem konsoli do debugowania na żywo):
chrome.tabs.query({url:'https://chrome.google.com/webstore/*'}, function(result) {
if (result.length) chrome.tabs.executeScript(result[0].id, {code:'alert(0)'});
});
Ok Skrypty zawartość nie działa, to nie może to sposób poprzez tło stronach? Czy nie istnieje żaden sposób, aby to zadziałało (z wyjątkiem parametru wiersza poleceń)? – chingo
Nie działa to już więcej (w przeglądarce Chrome 31). Złożyłem błąd - https://code.google.com/p/chromium/issues/detail?id=342090 – kzahel
@kzahel Właśnie naprawiłem ten błąd. Powinieneś móc ponownie użyć '--allow-scripting-gallery' (przynajmniej z kompilacjami Canary). –