Chrome V71 ломает расширение JS для впрыска? - PullRequest
0 голосов
/ 05 декабря 2018

Я использую описанный здесь метод 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 это все еще работает.

1 Ответ

0 голосов
/ 07 декабря 2018

Реструктурировано, как упомянуто @wOxxOm, который сейчас отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...