Я использую описанный здесь метод 1
Вставьте код в контекст страницы, используя скрипт содержимого
, основанный на
Google Chrome "Ярлык приложения": как автоматически загружать JavaScript?
Это работало нормально, но после обновления моего браузера (Chrome) до v71 это больше не работает, так как мои элементы не могут найтифункции в моем внедренном файле JS больше.Я подготовил простой пример:
manifest.json
{
"manifest_version": 2,
"name": "Test",
"version": "1.0.0",
"web_accessible_resources":
[
"Callbacks.js"
],
"content_scripts": [
{
"matches": ["https://stackoverflow.com/"],
"js": ["inject.js"],
"run_at": "document_idle"
}
],
"permissions": [
"activeTab"
]
}
inject.js
function newButton(id, cb)
{
var b = document.createElement("div");
b.setAttribute("onclick",cb);
b.style.margin = "50px"
b.style.width = "100px";
b.style.height = "100px";
b.style.background = "gray";
b.style.zIndex = 10000000;
b.style.position = "absolute";
b.id = id;
return b;
}
var cc= document.createElement("script");
cc.src = chrome.runtime.getURL('Callbacks.js') ;
document.body.appendChild(cc);
document.body.appendChild(newButton("myId", "myfun();"));
Callbacks.js
function myfun(){
window.alert("hallo");
}
При переходе на stackoverflow.com и нажатии на серый div я вижу это в своей консоли
(index): 1 Uncaught ReferenceError: myfun не определен в HTMLDivElement.onclick ((index): 1) onclick @ (index): 1
Однако я все еще могу вызывать myfun из консоли напрямую.
Есть идеи по этому поводу?С более старой версией Chrome это все еще работает.