2014-10-11 3 views
1

Я пытаюсь сделать чрезвычайно простое расширение хром, которое что-то предупреждает, когда вы нажимаете кнопку, но он не работает. Я получаю следующую ошибку:Что случилось с этим простым расширением хром?

Отказано от выполнения встроенного скрипта, поскольку оно нарушает следующую директиву политики безопасности контента: «script-src» self 'chrome-extension-resource: ». Для включения встроенного выполнения требуется либо ключевое слово «небезопасное-встроенное», либо хэш («sha256 -...»), либо nonce («nonce -...»).

Может кто-нибудь помочь? Это то, что я прямо сейчас:

popup.html

<html> 
    <body> 
     <input type = "button" id = "the_button" value = "My button" onclick = "sayHi()"></input> 
    </body> 
    <script> src = "popup.js" </script> 
</html> 

popup.js

function sayHi() { 
    alert("hi") 
} 

manifest.json

{ 
    "manifest_version": 2, 
    "name": "Test", 
    "description": "Test Extension", 
    "version": "1.0", 

    "icons": { 
    "48": "icon.png" 
    }, 

    "permissions": [ 
    "http://*/*", 
    "https://*/*" 
    ], 

    "content_scripts": [{ 
    "matches": ["http://*/*", "http://*/*"], 
    "js": ["jquery.js", "popup.js"] 
    }], 

    "browser_action": { 
    "default_title": "This is a test", 
    "default_icon": "icon.png", 
    "default_popup": "popup.html" 
    } 
} 

ответ

3

Проблема здесь

<script> src = "popup.js" </script> 

Чтобы включать использование JS файловой

<script src="popup.js"></script> 

Эта ошибка будет когда вы пытаетесь установить встроенный Javascr ipt в ваших файлах. Расширения Chrome жалуются на это.

Вы получите такое же сообщение об ошибке, если вы попытаетесь

<script> alert("hello world"); </script> 

От Google Chrome extension documentation

Inline JavaScript will not be executed. This restriction bans both inline blocks and inline event handlers (e.g. <button onclick="...">).

Это также означает, что ваш обработчик события рядный не будет работать, вы должны связать событие динамически вместо этого в вашем скрипте popup.js:

document.getElementById("the_button").addEventListener("click", function() 
{ 
    // click code here 
}, false); 
+0

Спасибо, но это все еще не кажется t o работать. Я даже не ошибаюсь. – David

+0

Обработчики событий @David inline также не будут работать, см. Обновление. Вы можете получить элемент и связать событие динамически. – BrunoLM

4
<script> src = "popup.js" </script> 

должен быть

<script src="popup.js"></script> 

Я думаю ...

Смежные вопросы