Pit*_*kos 3 javascript greasemonkey google-chrome onload userscripts
我有这个用户名:
// ==UserScript==
// @name test
// @namespace test
// @description show's an alert on load
// @include http://*
// @include https://*
// ==/UserScript==
window.addEventListener('load', function(){alert("loaded");}, false);
Run Code Online (Sandbox Code Playgroud)
这在所有页面上都适用于Firefox,但在某些情况下在Chrome上根本不起作用.
一个例子是这个网站:http://lexin.nada.kth.se/lexin/ 输入地址中的链接并点击进入,正常加载页面但没有弹出警报.如果按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 Code Online (Sandbox Code Playgroud)
要解决此问题,请使用@run-at document-start元规则,该元规则会在创建文档之前执行脚本:
...
// @run-at document-start
// ==/UserScript==
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6100 次 |
| 最近记录: |