`
- 浏览:
485116 次
- 性别:
- 来自:
南阳
-
Opera UserJS 官方教程 - 使用 UserJS 掌控页面
简介
UserJS (User Javascript, 用户 Javascript) ,使您可以为Opera所访问的每一个页面,指定本地 JavaScript 文件。
UserJS 具有多种用途,包括如下:
- 修复网页上有问题的脚本
- 通过对网页改变或添加自己的内容,来增强网页功能
- 控制页面上允许运行什么脚本,以及允许脚本做什么
- 通过向 UserJS 中添加功能,简化用户书签栏
此教程最近更新至 Opera9.0 版。
安全性
分享由其他人创建 UserJS 文件是可以的,但如果那些脚本库来自您不认识或不信任的某人,请你千万不要安装和使用。如有疑问,请将脚本发到 Opera 的论坛、新闻组、邮件列表里,来询问你想使用的脚本,是否是免费并且编写的很好。
启用之后,UserJS 会被载入你所访问的大部分网页,包括那些带有框架及内嵌框架的页面。任何创建于 UserJS 中的全局函数和变量,都是可用的,并且可以被这些页面上任何脚本发现。基于这个原因,为了保护您的隐私和安全,我们建议您在您的 UserJS 中,不要包括任何的敏感资料。默认情况下,UserJS 将不会在安全页面上加载。
要查看 UserJS 是否启用,参见“帮助” > “关于Opera”或者 Opera:about。如果启用了 UserJS ,将在“路径”下列出" UserJS 文件" 路径。
注意:UserJS 将不会载入到任何使用 Opera: 协议的页面。
功能
UserJS (用户脚本)可以象所访问页面的一部分那样被加载并执行。它在页面首个脚本之前就立即运行。如果页面本身不包含任何脚本,UserJS 将在页面即将完成加载时立即执行。通常 UserJS 在页面 DOM 载入完成前运行。(注意这种情况不适用于 Greasemonkey 脚本。具体细节可参考下文中的Greasemonkey 脚本实例 。)访问 opera: 协议的页面将不会加载 UserJS 。默认情况下,访问 https: 协议的页面也不会加载 UserJS。
用户 JavaScript 可以实现所有正常脚本的功能,包括检测事件、创建变量、创建函数和读取为页面保存的 cookies 等等。不仅如此,用户 JavaScript 还能执行一些特别功能。它可以根据需要控制页面加载哪些脚本、改写页面自身的脚本、拦截页面正在检测的事件、改变事件具体内容和覆盖页面自身的变量和函数。
window.opera 对象有如下四个方法来实现上述特别功能:
- window.opera.defineMagicVariable
- window.opera.defineMagicFunction
- window.opera.addEventListener
- window.opera.removeEventListener
关于这些方法后面会有更深入的说明。注意:这些方法只能从 UserJS 中调用才会有效,从常规页面脚本中进行调用将被忽略。
添加 UserJS
要启用 UserJS ,依次点击工具 > 选项 > 高级 > 内容 > JavaScript 选项,并选择您存放 UserJS 文件的路径。Opera 将加载所有指定目录下以 .js 为后缀名的文件,并将其作为 UserJS 文件。如果文件名以 .user.js 结尾,将被视为使用 Greasemonkey 标记 。
编辑自己的 UserJS ,可以使用文本编辑器,保存到您指定的 UserJS 目录即可。文件将会自动在下一次 Opera 打开页面时载入。应用 UserJS 的修改不需要重新启动 Opera。
为避免在不适用的页面运行整个脚本,最好首先检查页面地址是否符合需要,确保只在适用的页面运行增强或修补功能的脚本。如果没有进行必要的检查可能导致错误发生或者影响性能。有下面两种方式可以检查页面地址:
代码: 全选
if( location.hostname.indexOf('example.com') != -1 ) {
if( location.href.match(/^http:////example/.com//resources///) ) {
为了防止与页面其他脚本的冲突,最好使用 DOM addEventListener 方法检测事件,而不推荐使用传统的事件注册模型,如
代码: 全选
window.onload = myfunction;
建议事件处理尽可能使用匿名函数。
为了限制某个用户 JavaScript 只在特定页面执行,可以在脚本文件头添加下面的注释文本:
代码: 全选
// ==UserScript==
// @include http://example.com/*
// @include http://www.example.com/*
// @exclude http://example.com/directory/*
// @exclude http://www.example.com/example.html
// ==/UserScript==
您可以根据需要使用足够多的 @include 和 @exclude 声明,以便对脚本作用范围进行限定。
在安全页面上使用 UserJS
为了保护您的安全,在使用 https: 协议的页面上 UserJS 默认为禁用。如果您希望在这些页面上运行 UserJS,可从 opera:config 中启用 User JavaScript on HTTPS 选项。
如果在安全页面上启用了 UserJS ,务必确保 UserJS 文件夹中脚本的安全性。尤其是如果您使用的脚本由他人编写,更应注意安全。如果您启用了这个选项,Opera 将在每次浏览会话第一次访问安全页面时提示是否启用 UserJS 。
使用示例
覆盖特定的变量或函数
UserJS 可以用来覆盖页面上任何脚本设置的变量。这是通过使用 defineMagicVariable 和 defineMagicFunction 方法实现的。 例如,如果一个站点错误识别 Opera 并且试图让 Opera 执行用于其它浏览器的代码:
代码: 全选
var ie = document.all;
UserJS 可以使用类似的函数来覆盖错误的侦测:
代码: 全选
window.opera.defineMagicVariable( 'ie', function () { return 0; }, null );
在页面获取这个变量的值时, 就会运行这个函数, 并使用这个函数返回的值来代替变量的实际值.
载入脚本
侦测什么时候载入, 解释或运行脚本可以使用 window.opera.addEventListener 函数.
在 UserJS 中可以使用 'BeforeScript' 事件来侦测页面上的脚本在什么时候由 JavaScript 引擎解释。如果需要,脚本内容可以被重写,或者避免被解释执行。
例如, 如果一个脚本将一个不存在的属性值与控制进行比较:
代码: 全选
if( node.getAttribute('myattribute') != null ) {
这些值就不可能相等, 因为 getAttribute 应该返回一个空字符串, 但有些浏览器会错误的返回一个空值. 结果, 这个脚本在 Opera 中就会失败, 因为 Opera 会正确的返回一个空值. 为了避免出现这样的问题, 可以用一个 UserJS 来侦测这个脚本在什么时候被解释, 然后将其重写去掉比较语句, 因为它对这种类型的声明不是必须的:
代码: 全选
if( location.hostname.indexOf('example.com') != -1 ) {
window.opera.addEventListener(
'BeforeScript',
function (e) {
e.element.text = e.element.text.replace(/!=/s*null/,'');
},
false
);
}
如果一个页面引用了会产生错误的外部脚本, 可以使用 'BeforeExternalScript' 来侦测载入脚本的时间并阻止 Opera 载入那个脚本:
代码: 全选
if( location.hostname.indexOf('example.com') != -1 ) {
window.opera.addEventListener(
'BeforeExternalScript',
function (e) {
if( e.element.getAttribute('src').match(/problem//script/.js$/) ) {
e.preventDefault();
}
},
false
);
}
覆盖事件和事件处理器
UserJS 可以使用 'BeforeEvent.type' 中的一个事件来侦测一个脚本事件什么时候发生, 即便是页面上没有脚本监听那个事件. 这些可以用来针对特定的事件类型, 例如 'BeforeEvent.click'.
你也可以只使用 'BeforeEvent' 侦测所有类型的事件. 在 Opera 8 中, 如果你监听一个更具体的 'BeforeEvent.type' 将不会触发这个函数. 例如, 如果你监听 'BeoreEvent.click' , 'BeforeEvent' 事件将不会由点击事件触发. 注意, 因为 'BeforeEvent' 会侦测到非常多的事件, 使用起来可能会影响性能.
要阻止页面上的脚本侦测载入中的事件, 可以使用 'BeforeEvent.load' 来取消. 注意, onload 也会触发到其它的元素, 如图像, 所以脚本要检查这个事件是否是针对这个文档:
代码: 全选
if( location.hostname.indexOf('example.com') != -1 ) {
window.opera.addEventListener('BeforeEvent.load',function (e) {
//check that it is the page loading, not just an image
if( e.event.target instanceof Document ) {
e.preventDefault();
}
},false);
}
在很多情况下, 'BeforeEventListener' 事件会更有用, 因为它们只有在页面上的一个脚本监听这些事件时才会触发. 它们提供了到事件对象和事件处理器函数的访问途径. 可以使用 preventDefault 来取消这些事件.
可以使用 'BeforeEventListener.type' 来更具体的侦测这些事件, 道理和你可以使用 'BeforeEvent.type' 代替 'BeforeEvent' 一样的. 例如, 要阻止一个脚本监听鼠标移动:
代码: 全选
if( location.hostname.indexOf('example.com') != -1 ) {
window.opera.addEventListener(
'BeforeEventListener.mousemove',
function (e) {
e.preventDefault();
},
false
);
}
你可以更具体的针对那些需要去掉的功能. 在下面这个例子中, UserJS 检查事件处理器是否是由页面提供的 'myMouseTrail' 函数. 然会它会改变事件对象假装鼠标的位置是在页面的顶端:
代码: 全选
if( location.hostname.indexOf('example.com') != -1 ) {
window.opera.addEventListener(
'BeforeEventListener.mousemove',
function (e) {
if( e.listener == moveMouseTrail ) {
e.event.clientY = 0;
e.event.pageY = 0;
}
},
false
);
}
'AfterEvent' 事件允许 UserJS 检查页面上的一个脚本是否取消了一个动作. 若一个动作被阻止, UserJS 可以对其进行改变并允许执行那个动作.
例如, 当你提交一个表格时, 默认的动作是针对被提交的表格的, 然后从服务器返回一个新的页面. 如果页面上的一个脚本截获了提交事件, 它可以对表格进行验证, 并只允许通过验证的表格才能进行提交. 如果验证脚本错误的判断了表格验证结果的准确性并且造成表格不能被提交, 可以使用一个 UserJS 侦测这个情况什么时候发生然后阻止那个脚本的执行:
代码: 全选
if( location.hostname.indexOf('example.com') != -1 ) {
window.opera.addEventListener(
'AfterEvent.submit',
function (e) {
if( e.eventCancelled ) {
//the script has tried to stop the form submission
if( confirm( 'Submission was prevented. Submit anyway?' ) ) {
//prevent the script from preventing the form submission
e.preventDefault();
}
}
},
false
);
}
JavScript URL
页面也可以使用 JavaScript URL 作为启动脚本的一种方式, 如, 将 JavaScript 包含在一个链接的 HREF 属性中, 或包含在一个表格的 TARGET 属性中. UserJS 可以侦测这些脚本什么时候被激活, 然后进行阻止或重写那个即将运行的脚本. 注意, 这也会影响使用 javascript: 协议的 bookmaklet.
例如, 如过一个页面使用 JavaScript URL 打开一个新窗口, 可以使用 UserJS 中的 'BeforeJavascriptURL' 事件将其重写成打开新窗口之前先显示一个确认对话框.
代码: 全选
if( location.hostname.indexOf('example.com') != -1 ) {
window.opera.addEventListener(
'BeforeJavascriptURL',
function (e) {
if( e.source.indexOf('window.open') != -1 ) {
//rewrite the script to confirm before opening windows
e.source = e.source.replace(
/window/.open/g,
'if( confirm(/'Allow window to open?/') ) window.open'
);
}
},
false
);
}
JavaScript URL 可能也会返回一个值. 某些页面可能会有意的使用这个值, 以用新的内容来覆盖其自身值, 但有时候也会错误的返回一个值并错误的改写页面内容. UserJS 可以使用 'AfterJavascriptURL' 事件截获这个返回值并在写入新内容前显示一个确认对话框. 它也可以在需要的时候改写新内容.
代码: 全选
if( location.hostname.indexOf('example.com') != -1 ) {
window.opera.addEventListener(
'AfterJavascriptURL',
function (e) {
if( typeof( e.returnValue ) == 'string' ) {
if( confirm('Overwrite page?') ) {
e.returnValue += 'Changed by User JavaScript';
} else {
e.preventDefault();
}
}
},
false
);
}
一般脚本和事件
UserJS 不一定基于这些特殊的事件, 也可以接受一般的脚本操作. 例如, 要在每个页面上显示一个提示, 说明 Opera 使用的渲染模式 (QuirksMode或CSS1Compat), 你可以用以下方法:
代码: 全选
document.addEventListener(
'load',
function (e) {
if( !document.body ) { return; }
var mydiv = document.createElement('div');
mydiv.style.position = 'fixed';
mydiv.style.top = '0px';
mydiv.style.right = '0px';
mydiv.style.border = '1px solid #000';
mydiv.style.backgroundColor = '#fff';
mydiv.style.color = '#000';
mydiv.appendChild(document.createTextNode(document.compatMode))
document.body.appendChild(mydiv);
},
false
);
Greasemonkey 脚本
Opera 可以运行很多 Greasemonkey 脚本. 这些脚本是用在 Mozilla 系列浏览器上的 Greasemonkey 增强功能上的. 要让 Opera 识别某个脚本使用了 Greasemonkey 符号, 包含脚本的文件必须以 .user.js 结尾(其它所有的以 .js 结尾的文件都被认为是一般的 UserJS). 使用 Greasemonkey 符号的脚本在处理上稍有不同 (为了与现存的脚本兼容):
- 不能在其中使用 window.opera.addEventListener 和相关的方法, 或 magic 函数和变量.
- 它们在页面完成载入后执行, 在页面的 DOM 创建之后, 运行定义的加载处理之前.
因为这一点不同的处理方式, Greasemonkey 脚本一般只能在问题或错误出现之后才能修正这些错误. 因此, 这些脚本最好是用来增加功能而不是用来修正问题脚本.
尽管可以使用一个一般的页面地址侦测, Greasemonkey 脚本一般使用 ‘==UserScript==’ 注释块来限制脚本执行的页面地址. 总的来说, 用于每个增强功能的 JavaScript 代码是包含在其自身的文件里面的, 尽管这并一定是必须的.
因为脚本是在运行任何加载事件处理器之前执行的, 可以以内嵌方式编写, 但要避免产生全局变量, 最好是使用一个立即激活的匿名函数. 例如, 要阻止一个页面使用 target="_blank" 在新窗口打开链接, 可以使用下面的语句:
代码: 全选
(function () {
for( var i = 0; document.links[i]; i++ ) {
if( document.links[i].target == '_blank' ) {
document.links[i].target = '_self';
}
}
})();
使用 Greasemonkey 标记和在一个一般的 UserJS 中创建一个 'BeforeEvent.load' 监听事件 (参看覆盖事件和事件处理器) 效果是一样的.
提示: 很多 Greasemonkey 脚本使用 window._content 来引用窗口对象. 这在 Opera 中是不必要的, 要避免在每个含有这个语句的文件中进行编辑, 你可以在一个一般的 UserJS 文件夹中简单的加入下面的内容:
代码: 全选
window._content = window;
控制导航模式
UserJS 可以覆盖 Opera 的历史导航模式, 将其设置为一直快速或一直兼容. 关于这些模式的更多细节, 参看知识库文章 . 这些模式可以设置为使用 setOverrideHistoryNavigationMode 方法.
代码: 全选
opera.setOverrideHistoryNavigationMode('fast')
可用的方法和事件
- window.opera.defineMagicVariable
- window.opera.defineMagicFunction
- window.opera.addEventListener
- window.opera.removeEventListener
- window.opera.setOverrideHistoryNavigationMode
- window.opera.getOverrideHistoryNavigationMode
window.opera.defineMagicVariable
UserJS 中可以使用这个方法覆盖规则脚本定义的全局变量. 它接受 3 个参数:
Name
提供要覆盖变量的名称的字符串.
Getter
当任何时候一个脚本试图访问变量内容时运行的函数. 这个函数返回的任何值作为变量的值. 有一个参数会被传送至这个函数; 变量的目前值.
Setter
可选; 当任何时候一个脚本试图访问变量内容时运行的函数. 有一个参数会被传送至这个函数; 脚本试图指派给变量的那个值. 如果不需要 setter 函数, 必须使用 null 值代替.
例如:
代码: 全选
window.opera.defineMagicVariable(
'isGoodBrowser',
function (curVal) { return true; },
function (newVal) { if(!newVal) { window.status = 'Repairing script'; } }
);
window.opera.defineMagicFunction
UserJS 中可以使用这个方法覆盖规则脚本定义的全局函数. 它接受 2 个参数:
Name
提供要覆盖变量的名称的字符串.
Implementation
代替页面内定义的函数运行的函数. 下面的参数会被传送到这个函数:
- 页面定义的真实函数的一个引用.
- 真实函数中关键词 'this' 指代的对象.
- 任何会传送至真实函数的参数(每一个都作为一个单独的参数传送至 magic 函数).
例如:
代码: 全选
window.opera.defineMagicFunction(
'getLayer',
function ( oRealFunc, oThis, oParam1, oParam2 ) {
return oParam1.getElementById('oParam2').style;
}
);
该示例覆盖函数 "f". 如果 'this' 对象指代窗口对象, 返回错误值. 否则运行真实的函数:
代码: 全选
window.opera.defineMagicFunction(
'f',
function( real, thisObject ) {
if( thisObject == window ) {
return false;
} else {
return real.apply( thisObject, arguments.slice(2) );
}
}
);
window.opera.addEventListener
这是对 UserJS 添加监听事件的一般方法. 当侦测到一个事件时, 会有一个 UserJSEvent object (也可以通过 window.event 获得)传送至事件处理器. 除了常规的事件属性之外, 根据要侦测的事件的类型, UserJSEvent 对象也会包含 'element', 'event', 'listener', 'eventCancelled', 'propagationStopped', 'source' 和 'returnValue' 属性. 某些事件可以通过 prventDefault 取消, 可以用来阻止脚本或事件处理器的执行.
UserJS 的监听事件几乎可以在任何位置添加. 不能通过处理函数为规则事件添加listener, 也不能通过由计时器激活的脚本添加. 可以侦测到下面的事件:
BeforeExternalScript
遇到一个带有 SRC 属性的 SCRIPT 元素时触发. 脚本元素可以通过 UserJSEvent 的元素属性获得. 如果被取消, 则不会载入外部资源且脚本元素不会执行. 另外, 如果被取消, 则不会触发 BeforeScript 事件.
BeforeScript
在一个 SCRIPT 元素执行前触发. 脚本元素可以通过 UserJSEvent 的元素属性获得. 脚本的内容可以通过脚本元素的文字属性获得, 也是可以编写的:
代码: 全选
UserJSEvent.element.text = UserJSEvent.element.text.replace(/!=/s*null/,'');
这个 BeforeScript 事件可以通过嵌入脚本或外部脚本触发, 包含 Opera 一般不会执行的脚本类型(如 VBScript). 如果被取消, 这个脚本元素则不会被执行.
AfterScript
当一个SCRIPT 元素完成执行后触发. 脚本元素可以通过 UserJSEvent 的元素属性获得.
BeforeEvent
在一个规则的事件触发之前触发, 不管这个事件是否会被任何事件处理器处理. 这个规则的事件可以通过 UserJSEvent 的事件属性获得. 如果被取消, 这个规则事件就不会被触发, 执行其默认的动作, 所有关联的 BeforeEventListener 事件都不会被触发.
BeforeEvent.type
和 BeforeEvent 一样, 但针对特定类型的事件 (例如, BeforeEvent.click) 而触发. 在 Opera 8 中, 如果有监听函数为一个匹配的 BeforeEvent.type 事件而注册, 则不会触发 BeforeEvent 事件. 在 Opera 9 中, 两者都会触发.
AfterEvent
当一个规则的事件触发并被处理之后, 其默认动作被执行之前触发. 这个规则的事件可以通过 UserJSEvent 的事件属性获得. 如果被取消, 则规则事件处理器取消规则事件的任何尝试都会被忽略掉. UserJSEvent 对象也含有 eventCancelled 属性, 如果有任何规则事件处理器取消了这个事件则设定为 true.
AfterEvent.type
和 AfterEvent 一样, 但针对特定类型的事件 (例如, AfterEvent.click) 而触发. 在 Opera 8 中, 如果有监听函数为一个匹配的 AfterEvent.type 事件而注册, 则不会触发 AfterEvent 事件. 在 Opera 9 中, 两者都会触发.
BeforeEventListener
在一个规则事件的监听事件被调用前触发. 这个常规事件可以通过 UserJSEvent 的事件属性获得, 被调用的监听函数可以通过 UserJSEvent 的监听函数属性获得. 如果被取消, 则不会调用规则事件的监听函数.
BeforeEventListener.type
和 BeforeEventListener 一样, 但针对特定类型的事件 (例如, BeforeEventListener.click) 而触发. 在 Opera 8 中, 如果有监听函数为一个匹配的 BeforeEventListener.type 事件而注册, 则不会触发 BeforeEventListener 事件. 在 Opera 9 中, 两者都会触发.
AfterEventListener
在一个常规事件的监听函数被调用之后触发. 这个常规事件可以通过 UserJSEvent 的事件属性获得, 被调用的监听函数可以通过 UserJSEvent 的监听函数属性获得. 如果被取消, 则规则事件处理器取消规则事件传播的任何尝试都会被忽略掉. UserJSEvent 对象也含有 propagationStopped 属性, 如果有任何规则事件处理器取消了这个事件则设定为 true.
AfterEventListener.type
和 AfterEventListener 一样, 但针对特定类型的事件 (例如, AfterEventListener.click) 而触发. 在 Opera 8 中, 如果有监听函数为一个匹配的 AfterEventListener.type 事件而注册, 则不会触发 AfterEventListener 事件. 在 Opera 9 中, 两者都会触发.
BeforeJavascriptURL
在 Javascript 之前触发: 执行URL. 执行的 JavaScript 代码(URL 中在 'javascript:' 之后的所有内容) 可以从 UserJSEvent 的源属性获得, 且是可编写的. 如果被取消, javascript: 不执行 URL.
AfterJavascriptURL
在 JavaScript 之后触发: 执行 URL. 已经执行的 JavaScript 代码 (URL中在 'javascript:' 之后的所有内容) 可以通过UserJSEvent 的源属性获得, 代码返回的值都可以通过 UserJSEvent 的返回值属性获得. 这个返回值 (returnValue) 也是可编写的. 如果被取消, 任何返回值都不会作为新页面的源.
window.opera.removeEventListener
这个可以用来去掉通过 window.opera.addEventListener 添加的 User JavaScript 事件监听函数. 如果事件函数是由一个匿名函数增加的则不能使用. 更多细节参看 W3C DOM Level 2 Events - Event registration interfaces specification .
window.opera.setOverrideHistoryNavigationMode
这个方法可以用在 UserJS 中设置对当前文档Opera应该使用何种历史导航模式. 它接受 1 个参数:
Mode
'automatic', 'compatible', 或 'fast' 中的一个.
参看知识库 中的更多细节.
window.opera.getOverrideHistoryNavigationMode
获得上一个通过 setOverrideHistoryNavigationMode 设置的当前文档的历史导航模式值. 默认为'automatic'.
UserJSEvent 对象
这是传送至 UserJS 事件处理器函数的事件对象 (也可以通过 window.event)获得. 和一般的事件对象属性一样, 它有一些专门针对 UserJS 事件的属性. 很多属性在 UserJS 中的功能都不大 (例如, currentTarget, srcElement, 和 target properties 都引用 window.opera), 但下面的属性和方法是最有用的:
element
对象(object), 只读: 脚本元素. 所有一般的 DOM 方法都是可以获得的, 例如 getAtrribute 和 setAtrribute. 在 'BeforeExternalScript', 'BeforeScript', 和 'AfterScript' 事件中可以使用.
element.text
String 字符串, 可读写: 即将执行的脚本. 在 'BeforeScript' 和 'AfterScript' 事件中可以使用. 和规则的页面脚本不一样, UserJS 可以查看所有域上的脚本源, 而不限于当前页面所使用的域.
event
对象(object), 只读: 规则时间对象. 在 'BeforeEvent' 和 'AfterEvent' 事件中可以使用.
eventCancelled
逻辑值, 只读: 表示一个事件处理器是否取消了某个事件. 在 'AfterEvent' 事件中可以使用.
listener
函数, 只读: 对事件处理器函数的引用. 在 'BeforeEventListener' 和 'AfterEventListener' 事件中可以使用.
preventDefault
函数, 只读: 阻止默认的动作, 例如; 阻止一个脚本的执行, 阻止一个事件的触发, 或阻止一个事件处理器阻挡提交表格的操作. 在所有事件中都可以使用, 但在 'AfterScript' 事件中没有效果.
propagationStopped
String 字符串, 可读写: 表示一个事件处理器是否停止了事件的传播. 在 'AfterEventListener' 事件中可以使用.
returnValue
String 字符串, 可读写: 脚本返回的值. 在 'AfterJavascriptURL' 事件中可以使用.
source
String 字符串, 可读写: 将要执行的脚本或已经执行的脚本. 在 'BeforeJavascriptURL' 和 'AfterJavascriptURL' 事件中可以使用.
type
字符串, 只读: 侦测到的事件的类型; 例如 'BeforeJavascriptURL'. 在所有事件中都可以使用.
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
网上的都是自动转换简繁体,可有时候我们并不想每个网页都转 ...菜单项如下: Item, "转换繁体"="Go to page, "javascript:s2t();", , , """ Item, "转换简体"="Go to page, "javascript:t2s();", , , ""
【标题】"UserJs-master_HENTAI_hentaiverse_HentaiVerse在线_hentaiglobal_hent" 指的是一款基于JavaScript的用户脚本,主要用于增强HentaiVerse在线平台的用户体验,可能包含了一些自定义功能或者优化特性。...
使用这样的UserJS脚本需要一定的技术知识,因为它们通常需要在浏览器的扩展或用户脚本管理器(如Greasemonkey或Tampermonkey)中安装和启用。用户可能还需要知道如何找到并访问脚本的设置,以定制其行为。然而,对于...
标题中的"flash-quality_quality_flash_UserJS_"暗示了这是一个与Flash播放器质量设置相关的UserJS脚本。UserJS是一种特殊类型的JavaScript文件,它允许用户自定义网页的行为,特别是对于浏览器扩展和增强网页功能...
根据【压缩包子文件的文件名称列表】"userjs-master",我们可以推断这可能是一个用户脚本项目的主目录,其中可能包含了各种用户脚本文件、模板文件、配置文件以及其他辅助资源。为了深入理解并使用这些脚本,你需要...
很多时候,我们不知道某些站点是否有用户提供脚本来优化页面,但是Userscript +可以帮助您自动找到适用的UserJS,默认情况下,根据评分从高到低的顺序,建议您您,带给您全新的Tampermonkey使用体验! 安装 安装...
Image Autosizer 是一款针对Opera浏览器的扩展,它增强了用户查看图片的体验,通过添加五种不同的图片尺寸调整模式,使得图片可以更加灵活、适当地在浏览器中展示。这款UserJS(用户脚本)允许用户根据需要自由调整...
userjs-override Arkenfox user.js的个人user-overrides.js配置 如果要使用此功能,则应编辑user-overrides.js文件以获得最佳体验。 有关Arkenfox user.js的更多信息: : 指示 阅读user-overrides.js文件中的注释...
同时,由于是用户脚本,安装和使用也相对简单,只需在支持UserJS的浏览器扩展(如GreaseMonkey或ViolentMonkey)中导入即可。总的来说,Webcomic Reader 提供了一种高效、定制化的网络漫画阅读解决方案,提升了在线...
UserJS 是一种基于 Greasemonkey 或 Tampermonkey 等浏览器扩展的脚本,它允许用户自定义网页的行为,如修改页面样式、添加新功能等。Image Autosizer 就是这样一种利用 JavaScript 实现的用户脚本,通过监听页面...
标签 "forumwarz game UserJS Blackjack" 明确地将这个项目定位为Forumwarz游戏的一部分,使用UserJS技术,并且与Blackjack游戏紧密相关。这表明该脚本是为那些想在Forumwarz的Blackjack游戏中提高效率或自动进行...
monkey Show current site all UserJS,The easier way to instal
ssrtw-userjs放些自制的用户脚本环境于浏览器上安装扩充功能︰ 谷歌浏览器上安装 Firefox上安装之后,点击安装就可以安装脚本了。jsfiddle-dl说明jsfiddle没有提供将fiddle下载为一个html档的功能,这个用户脚本会在...
此存储库包含 Codeforces 的 userjs 脚本。 有关详细信息,请参阅 Codeforces 上的以下博客文章: colorize_standings_cf.user.js 的对进行着色multi_rating_graph_cf.user.js
Compare-UserJS 该脚本解析并进行比较,并将结果记录到userJS_diff.log 。 该脚本提供的信息: 匹配首选项,包括value和 。 具有不同值但状态匹配的首选项。 在文件A中声明了prefs,但在文件B中没有声明,反之...
语言:English 轻量级用户脚本管理器。...特点:-可以通过将整个图库保存在zip存档中来进行备份-通过链接安装userjs-可以使用大型userjs画廊并在其中进行搜索-方便的一键式脚本切换-所有GM_ *功能都可用
几乎所有浏览器都支持它:* Firefox: * Firefox: Scriptish * Opera: Violentmonkey * Opera: Tampermonkey * IE6: Turnabout * IE7Pro: IEScripts * Chrome:Tampermonkey * Safari: Nin
2. **UserJS**:UserJS是Tampermonkey用来运行的脚本文件,它使用JavaScript编写,以.user.js为后缀。这些脚本通常包含特定网站的增强代码,能够按照用户的需求个性化网页。 3. **GreasyFork**:这是一个UserScript...
userjs-tool.html Firefox user.js(例如arkenfox / user.js)的交互式视图,比较等。 在Firefox浏览器中显示Mozilla Firefox user.js设置文件的内容,其中包括: 突出显示,链接,主题*,调整大小,环绕,关于:...