Пытаюсь достучаться из расширения chrome к dom страницы. Для этого создал два js-файла. Один - для расширения, другой - контент-скрипт. Пытаюсь сделать, как тут. Мой manifest.json выглядит так:
{
"manifest_version": 2,
"name": "Sotis Unlock",
"description": "Анализатор страницы в sotis",
"version": "1.0.0",
"icons": {"128": "images/mini_logo.png"},
"browser_action": {
"default_icon": "images/icon.png",
"default_popup": "popup.html"
},
"content_scripts":[
{
"matches": [
"http://vedmark.ru/",
"https://*.ru/*",
"http://*.ru/*"
],
"css" : [],
"js": ["js/content_script.js"]
}
]
}
В matches по сути я пытаюсь охватить все сайты зоны .ru. content_script.js
-это тот самый скрипт, который должен отрабатывать внутри dom. Мой тестовый popup.html выглядит так:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Sotis</title>
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" type="text/css">
<style>
window.onload = function(){
contextBtn.onclick = function(){
alert('i');
chrome.runtime.sendMessage('GetcontextMnu');
}
linksBtn.onclick = function(){
chrome.runtime.sendMessage('Turn_links');
}
}
</style>
</head>
<body>
<button id="contextBtn">Вернуть контекстное меню</button>
<button id="linksBtn">Получить адреса</button>
</body>
</html>
И content_script.js, который лежит отдельно в папке /js:
chrome.runtime.onMessage.addListener(
function(request,sender,callback){
if (request=='GetcontextMnu') GetcontextMnu();
else if (request == 'Turn_links') Turn_links();
}
);
function GetcontextMnu(){
alert(0);
}
function Turn_links() {
alert(1);
}
Событие onclick
для contextBtn срабатывает. Далее я ожидаю, что внутри content_script сработает вот этот метод:
chrome.runtime.onMessage.addListener(
function(request,sender,callback){
if (request=='GetcontextMnu') GetcontextMnu();
else if (request == 'Turn_links') Turn_links();
}
);
Но ничего не происходит. И во вкладке content scripts пусто
Что я делаю не так? content script не подключился или в самом коде ожидании сообщений что-то не то?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть select с записанными значениями из массиваНужно с помощью перебора вывести в какой части массива находится значение select
Создаю форму с кучей форм ввода даты datepickerов (вызов датепискеров onclick)