Я только что начал использовать расширение Chrome, и мне нужно использовать jQuery. Я следил за всеми учебниками и ответами Stackoverflow, которые я мог найти, но он просто не работает.
Вот мой файл манифеста:
{
"manifest_version": 2,
"name": "some.site",
"description": "For adding assets to some.site.com",
"version": "1.0",
"permissions": [
"http://some.site.com",
"storage"
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": ["http://jquery.com/*"],
"js": ["jquery-1.11.0.min.js"]
}
]
}
И вот мой HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<script src="jquery-1.11.0.min.js" type="text/javascript"></script>
</head>
<body>
<div id="test">hello</div>
</body>
<script>
$('#test').html('booger');
</script>
</html>
Все работает нормально при загрузке непосредственно в браузере, но когда я нажимаю на значок расширения, он не работает.
Вы не можете писать встроенные скрипты внутри расширения Chrome из-за политики безопасности контента, поэтому следующий встроенный код:
<script>
$('#test').html('booger');
</script>
даже не выполнит. Вы должны перенести его в отдельный файл.
Подробнее об этом (и приятных примерах) в Руководстве разработчика Chrome.
Причина, по которой он работает при загрузке напрямую, заключается в том, что тогда вы просто обрабатываете страницу как html-документ. Chrome не загружает его как расширение, поэтому любые ограничения не применяются.
jquery-1.11.0.min.js
иpopup.html
в одном каталоге? (Я полагаю, они так и есть, поскольку вы сказали, что это работает, когда загружается напрямую ...)