[英]window.load doesn't fire always on chrome?
我有這個用戶腳本:
// ==UserScript==
// @name test
// @namespace test
// @description show's an alert on load
// @include http://*
// @include https://*
// ==/UserScript==
window.addEventListener('load', function(){alert("loaded");}, false);
在所有頁面上的Firefox上都可以正常工作,但在某些情況下在Chrome上根本無法使用。
一個示例是該網站: http : //lexin.nada.kth.se/lexin/在地址中輸入鏈接並按Enter,正常加載頁面,但沒有彈出警報。 如果按F5刷新頁面,則會顯示彈出窗口。
這種奇怪的行為有什么解釋嗎?
問題的原因是文檔完全加載后有時會執行內容腳本。 使用以下內容腳本(“用戶腳本”)對此進行了說明:
// ==UserScript==
// @name Test
// @namespace Test
// @include *
// ==/UserScript==
window.addEventListener('load', function(){alert("loaded");}, false);
alert(document.readyState); // When this prints "complete", onload never runs
要解決此問題,請使用@run-at document-start
元規則,該規則使腳本在創建文檔之前執行:
...
// @run-at document-start
// ==/UserScript==
該呼叫可能在頁面上加載時間太晚。 將此代碼添加到頁面的最上方,看看是否可以解決。
如果不是,請發布一些其他信息。 (在哪里進行調用?頁面上有更多信息?這是從外部.js文件調用嗎?)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.