2012-07-18 11 views
27

Staram się w zasadzie rozszerzyć chromowane rozszerzenie elementu. Workflow: - kliknij na ikonę przeglądarki - kliknij na stronie - hightlight element kliknięciuDodatek do skryptu rozszerzenia zawartości chromu w działaniu przeglądarki

Mam kłopoty w uruchamianie skryptów treści na działania przeglądarki przy użyciu manifest_version: 2 Kiedy sprawdzić okienko, które pojawia się to mówi :

Odmowa wykonania inline skryptu, ponieważ narusza następujące Content Security Policy dyrektywę: "script-src 'ja' chrome-extension-zasobu:" (popup.html: 5).

czyli tam, gdzie skrypt inline jest w popup.html i skrypt nie działa

mam:

manifest.json:

{ 
    "browser_action": { 
     "default_icon": "images/icon.gif", 
     "default_popup": "popup.html" 
    }, 
    "manifest_version": 2, 
    "description": "MEH!", 
    "name": "My First Extension", 
    "permissions": [ 
     "tabs", "http://*/*", "https://*/*" 
    ], 
    "version": "0.1" 
} 

popup.html:

<html> 
    <head> 
    </head> 
    <body> 
    <script> 
     chrome.tabs.executeScript(null,{ 
     code:"document.body.style.backgroundColor='red'" 
     }); 
    </script> 
    <div id='msg' style="width:300px">...</div> 
    </body> 
</html> 

Każda pomoc będzie bardzo doceniana ed

+0

Możliwy duplikat [rozszerzenie Chrome popup nie działa, zdarzenia kliknięć nie są obsługiwane] (http://stackoverflow.com/questions/17601615/the-chrome-extension-popup-is-not-working-click -events-are-not-handled) – Makyen

Odpowiedz

44

Okazuje się, że nie mogę odczytać błąd poprawnie dopóki nie zobaczyłem go tutaj

Widocznie manifest v2 nie pozwalają mieć skrypty inline, więc po prostu trzeba

src="path_to_the_file.js" 
+3

Dla tych, którzy wciąż nie dostają odpowiedzi, zobacz http://stackoverflow.com/a/17612988/938089 –

+1

Gdzie umieszczasz src? Ta odpowiedź nie jest jasna. – Doug

+0

wewnątrz ciała. Zamiast wstawiania wstawiałbyś skrypt, który wskazuje na plik, również wewnątrz HTML strony (jak w HEAD lub co- nie) – Stefan

0

w rozszerzeniu Odpowiedź @ tak3r i komentarz @ Douga:

Skrypty wbudowane należy zmienić na skrypty zewnętrzne.

Move:

<script> 
    chrome.tabs.executeScript(null,{ 
    code:"document.body.style.backgroundColor='red'" 
    }); 
</script> 

do nowego pliku o nazwie main.js i wyjąć <script></script> tagi

obejmują następujące w <head></head> kodu HTML

<script type="text/javascript" src="main.js"></script> 
Powiązane problemy