lightalex
@lightalex

Как сделать вызов события на странице с помощью расширения Chrome?

Всем привет!
Пишу расширение для Chrome
Расширение должно автоматически на странице заполнять форму и отправлять ее при нажатии на кнопку в popup'е

manifest.json:
{
    "manifest_version": 2,
 
    "name": "Time to bot it",
    "description": "So many pages",
    "version": "1.0",
	
    "browser_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html"
    },

	"permissions": [
		"tabs", "http://*/*", "https://*/*", "background", "browsingData", "contextMenus", "cookies"
	]
}


popup.html:
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Time to bot it!</title>
		<script src="jquery.js"></script>
		<script src="script.js"></script>
	</head>
	<body>
		<input type="button" class="bt" value="Button"/>
		<div class="res"></div>
	</body>
</html>


script.js (подключается в popup.html):
$(document).ready(function(){
	$('input').click(function(e){
		chrome.tabs.executeScript(null, {file:"click.js"});
	});
});


click.js:
$(document).ready(function(){
	$('input').trigger('click');
});


Код текущей страницы:
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Document</title>
		<script src="jquery.js"></script>
		<script>
			$(document).ready(function(){
				$('.bt').click(function(){
					$('.num').html($('.num').html()*1+1);
				});
			});
		</script>
	</head>
	<body>
		<input type="button" class="bt" id="bt" value="Click!"/>
		<div class="num">0</div>
	</body>
</html>


Ошибка в консоли на текущей странице:
Uncaught ReferenceError: $ is not defined

Вопрос - что я делаю не так?
  • Вопрос задан
  • 845 просмотров
Решения вопроса 1
lightalex
@lightalex Автор вопроса
Вопрос решился сам собой
В манифесте надо было подключить к странице jquery, так как скрипты страницы не трогаются при обращении из расширения
"content_scripts":[{
	"matches": ["http://*/*", "https://*/*"],
	"js": ["jquery.js"]
}]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы