Greasemonkey 上的 Javascript、与 Firefox/Chrome 中的插件相比的约束和限制因素?

标签 javascript firefox-addon google-chrome-extension greasemonkey

免责声明:Javascript 编码新手尝试使用 Greasemonkey;我已经阅读了教程,但对所使用的用语理解不够,因此我无法专注于并学习所需的内容。我希望有人能温和地为我指出如何实现我想要的东西。

假设我想制作一个插件,将某些内容应用于 nyanit.com 或 bacolicio.us 的效果(例如: http://nyanit.com/google.comhttp://bacolicio.us/http://google.com )。

当我想在页面上应用效果时,我对 Javascript 的理解是:

<script type="text/javascript">

(function(doc, t) {
    var scr = doc.createElement(t);

    scr.async = true;
    scr.type = 'text/javascript';

    //  scr.src = ??work-in-progress??
    //pseudocode (need to figure this out too): if it's a website that allows framing 
    //then apply the nyancat, else don't apply or I'll muck it up.

    var r = doc.getElementsByTagName(t)[0]; r.parentNode.insertBefore(scr, r);
} (document, 'script'));
</script>

所以我想我的问题具体是:

1) 对于 Greasemonkey,安装后,我创建了一个文件,其标题为//Userscript info,后跟空格。我假设我需要做的就是复制我的脚本并将其粘贴到那里,它应该可以工作吗? Greasemonkey 应用 javascript(相对于将其放在页面的 HTML 中)是否有任何约束和限制因素?

2) 如果我希望它成为 Firefox 的插件,则 this conversion tool reliable或者我应该学习 Firefox 的插件编写练习?

3) 如果我希望它成为 Chrome 的插件,基本上我只需将 .js 上传到某个地方(例如 userscripts.org),并且 Google 理想情况下应该将其识别为脚本?

最佳答案

1) 基本上,您是通过 XPCNativeWrapper 访问网页的。所以你有相同的 limitations 。对于此处的代码,它们都不适用,只需将该代码粘贴到 GreaseMonkey 脚本中(不带 <script> 标签)。

2)是的,脚本编译器可以正常工作。

3) 是的,Chrome 开箱即用地支持大多数 GreaseMonkey 脚本。

关于Greasemonkey 上的 Javascript、与 Firefox/Chrome 中的插件相比的约束和限制因素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7298543/

相关文章:

javascript - 在jQuery插件内部使用YouTube Iframe API获取状态

performance - 有什么方法可以自动化 YSlow?或者有 API 的替代品?

linux - 多显示器公共(public)信息显示(4个显示器/每个带有一个chrome/firefox窗口)

javascript - 用于运行 javascript 单元测试的 Chrome 扩展

javascript - 导致代码更改的 lint 错误但不确定如何继续

javascript - 获取数据 javascript 并推送到数组 Cordova

javascript - 如何在 Docusaurus V2 的 index.html 头部添加自定义脚本?

javascript - 如何区分 Firefox 标签页?

javascript - Chrome 扩展 - 将变量从 HTML 文件传递​​到 .js 文件

javascript - 如何检测键盘事件已经绑定(bind)?