有没有简单的方法来做到这一点。还有什么需要改变,因为它的运行方式有所不同?如何将书签转换成Greasemonkey userscript?
回答
要做到这一点最简单的方法:
通过URL decoder运行书签代码。使得
javascript:alert%20('Hi%20Boss!')%3B
,例如,成为:
javascript:alert ('Hi Boss!');
地带的领先
javascript:
关闭。结果:alert ('Hi Boss!');
将此代码添加到您的Greasemonkey文件的末尾。例如,创建一个名为文件,
你好World.user.js,使用此代码:// ==UserScript== // @name Hello World! // @description My first GM script from a bookmarklet // @include https://stackoverflow.com/questions/* // @grant none // ==/UserScript== alert ('Hi Boss!');
打开你好World.user.js与Firefox(按CtrlO)。 Greasemonkey将提示安装脚本。
现在,小书签代码将自动运行在您使用
@include
和@exclude
指令指定的任何页面上。更新:为了保证最大的兼容性,使用由Greasemonkey和Tampermonkey的更高版本增加了
@grant none
指令。
重要:
的userscript将更快比你所能激活书签运行。通常情况下,这不是问题。
但是在某些情况下,您可能需要等待页面的某个部分完全加载。
在这种情况下,您可以use techniques/utilities like waitForKeyElements。另外,Choosing and activating the right controls on an AJAX-driven site。如果您仍然无法使您的新脚本正常工作,请务必阅读My very simple Greasemonkey script is not running?。按照步骤包含指定信息在您打开有关新脚本的问题的任何问题。
这里是一个很好的文章,以avoid common pitfalls因为“正常”的JS和Greasemonkey的差异。
之初最重要的事情:
- 不要使用功能为字符串,如:
而是window.setTimeout("my_func()", 1000);
window.setTimeout(my_func, 1000);
或window.setTimeout(function(){doSomething(); doSomethingOther();}, 1000);
- 不要设置
而是element.onclick
element.addEventListener("click", my_func, true);
一些通常返回各种DOM的代码对象,在Greasemonkey环境中返回包装在XPCNativeWrapper中的对象。这是出于安全原因。
一些方法和属性是“透明的”,你可以在包装对象上调用它们,但有些不是。请阅读所提及的文章,了解如何避免这种情况;你也可以使用(这不是一般推荐的,但用于测试等)wrappedJSObject属性。当
obj.something
/obj.something()
在Greasemonkey中不起作用时,请尝试obj.wrappedJSObject.something
/obj.wrappedJSObject.something()
。
- 1. 为什么不能将这个书签转换为一个userscript?
- 2. 有没有办法将Greasemonkey脚本自动转换为书签?
- 3. Greasemonkey Userscript:粘贴在jQuery?
- 4. userscript确实在greasemonkey插件上运行
- 5. 如何将SHA256RSA签署的服务器证书转换为SHA1RSA?
- 6. 如何将JavaScript代码转换为书签?
- 7. 如何使用GhostScript将WORD文档与书签转换为PDF?
- 8. 将jquery转换为javascript以便能够在greasemonkey上运行?
- 9. 如何将一个标签转换成的link_to标签
- 10. 如何将.pem格式的证书从.crt文件转换成..?
- 11. “TypeError:无法将undefined转换为object”与GreaseMonkey脚本
- 12. 将JavaScript转换为Greasemonkey脚本
- 13. 如何表单标签转换成笨
- 14. 如何阵列转换成XML标签
- 15. 如何将Greasemonkey脚本转换为无重启Firefox插件?
- 16. mercurial repo与书签转换为mercurial - 没有书签?
- 17. greasemonkey货币转换器
- 18. 将标签值转换成databounded gridview的
- 19. 将图像转换成标签
- 20. 如何将JKS证书/密钥转换为BouncyCastle证书/密钥
- 21. 如何将HTML转换为XML以生成封闭标签?
- 22. 如何使用Greasemonkey脚本使用XSLT转换XML文件?
- 23. 如何将bytearray转换为img标签?
- 24. 如何转换“\ x09将”回标签
- 25. 标签轴。从Excel转换。将数据转换成字符串
- 26. 如何将书签HTML文件中的字符串转换为图标?
- 27. 如何制作将所选文本转换为链接的小书签?
- 28. 如何使用localStorage将书签添加到书签Ionic
- 29. 如何获得userscript
- 30. 如何转换成''
这很好,但是这会在每一页上自动运行。我所有的书签都是我只想激活的东西(比如在插件板上书签或者在Wayback Machine上查找)。你会如何让它只在我想要的时候执行? –
@NickS,这就是[@ include','@ exclude'和'@ match'指令](https://tampermonkey.net/documentation.php#_include)的用途。 –
对不起,让我澄清一下:我的意思是我想在一个页面上,想“嘿,我想在Wayback Machine上查看这个”,点击* something *,然后执行我的脚本(用Wayback打开一个新标签机器搜索当前的网址)。 我点击了什么?脚本如何知道何时打开选项卡? –