Причина:
Вы можете переопределить document.ondblclick
. Проблема - это контекст. У вас есть хром-расширение контекста и контекст страницы.
Для тестирования вы можете добавить в расширении следующим образом:
document.ondblclick = function() {
alert("chrome extension ondblclick event");
}
Вы можете взглянуть в обоих контекстах событие:
Если вы запустите этот событие, вы увидите, что вызываются оба события.
Решение:
Что вам нужно переопределить ondblclick
в странице контекста. Действительно простой способ сделать это - добавить свой собственный скрипт в страницу - тогда он будет работать в контексте страницы.
Чтобы внедрить скрипт, который вы можете написать inject.js
:
(function(){
var scriptElement = document.createElement('script');
scriptElement.setAttribute('type', 'text/javascript');
scriptElement.setAttribute('src', chrome.runtime.getURL('js/ownOndblclick.js'));
document.getElementsByTagName('head')[0].appendChild(scriptElement);
}());
И вам нужен сценарий, который вы должны вводить. В данном случае это ownOndblclick.js
:
document.ondblclick = function() {
alert("free");
}
оповещения только для тестирования. Удалите его после того, как увидите, что он работает, как ожидалось. Последний шаг заключается в корректировке manifest.json
:
{
...
"permissions": [
"http://whereever/*"
],
"content_scripts": [
{
"matches": ["http://whereever/*"],
"js": ["js/inject.js"]
}
],
"web_accessible_resources" : [
"js/ownOndblclick.js"
]
}
Вот так.
Альтернатива инъекции ownOndblclick.js
это поместить его непосредственно в inject.js
:
(function(){
var scriptElement = document.createElement('script');
scriptElement.setAttribute('type', 'text/javascript');
scriptElement.innerText = 'document.ondblclick = function() { alert("free");}';
document.getElementsByTagName('head')[0].appendChild(scriptElement);
}());
Затем вы можете удалить web_accessible_resources
из manifest.json
.
Как вы пробовали 'document.ondblclick = function() {}'. Кроме того, вы действительно должны использовать '.addEventListener', чтобы вы могли использовать соответствующий' .removeEventListener'. – Halcyon
спасибо, что ответите. но этот код не работает. и сайт не мой. поэтому я не могу это изменить. – KKY