Пользовательский скрипт TamperMonkey не запускает событие DOMContentLoaded

Это пользовательский скрипт TamperMonkey. Почему не появляется "HELLO"? Я использую Google Chrome на Ubuntu.

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://*/*
// @match        https://*/*
// @grant        none
// ==/UserScript==

window.addEventListener("DOMContentLoaded", function(event) {
    alert("HELLO");
  });


person Joshua Meyers    schedule 13.06.2016    source источник
comment
document, а не window.   -  person Patrick Roberts    schedule 13.06.2016
comment
Я только что попробовал это, все еще не работает.   -  person Joshua Meyers    schedule 13.06.2016
comment
Для сравнения простое выполнение alert("HELLO"); работает.   -  person Joshua Meyers    schedule 13.06.2016
comment
добавьте // @run-at document-start в свой заголовок, ознакомьтесь с спецификацией для получения более подробной информации.   -  person tsh    schedule 15.06.2016


Ответы (1)


Использовать это:

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    if (document.readyState == "complete" || document.readyState == "loaded" || document.readyState == "interactive") {
        alert("Already Loaded");
    } else {
        document.addEventListener("DOMContentLoaded", function(event) {
            alert("Just Loaded");
        });
    }
})();

Заимствовано из Как определить, был ли запущен DOMContentLoaded.

person Patrick Roberts    schedule 13.06.2016
comment
Спасибо, это работает. Проблема в том, что DOMContentLoaded срабатывает до того, как TamperMonkey запустится на странице? - person Joshua Meyers; 13.06.2016
comment
@JoshuaMeyers, это правильно, как вы должны сделать вывод из предупрежденного текста. - person Patrick Roberts; 13.06.2016