gpt4 book ai didi

javascript - 对 Firefox 扩展进行逆向工程

转载 作者:行者123 更新时间:2023-11-28 10:14:56 28 4
gpt4 key购买 nike

我是一名年轻的开发人员,在拥有 Java 背景后,这周才第一次尝试 JavaScript。我发现了一个不错的 Firefox 插件,它允许用户从选定的文本中复制链接。它相对较小,但我想尝试配置它,以便它从按钮而不是(右键单击/选择事件)运行

免责声明:相关扩展是开源的,并根据 GNU 通用公共(public)许可证 2.0 版获得许可

我并不是对任何人的辛勤工作进行逆向工程,我只是想弄清楚是什么让附加组件起作用以及如何将其工作原理应用于非附加组件。

来源可以在这里找到: https://addons.mozilla.org/en-US/firefox/files/browse/77730/ (它很小,只有一 jar ,所以不要害怕阅读)

回到正题:这是一个简洁的小插件,允许用户在网页中选择多个链接,并通过右键单击文本并选择复制所选链接来复制/粘贴所选链接。

所以我的问题分为两部分:

  1. 如何通过按钮而不是右键单击来运行此类加载项? (我假设它与 EOL 功能有关)

  2. 转换附加组件时,除了跨浏览器兼容性之外,还有什么需要注意的吗?我应该联系作者寻求帮助还是会冒犯别人?

感谢任何和所有帮助!

**

我很确定我无缘无故地传递了“true”来欢迎。也很确定将其转换为内部类型脚本我尝试获取源代码并从中制作一些东西:

HTML:

<input type="button" id="grablinkstest" value="CopyLinks" onclick="welcome(true);"/>

JavaScript:

function welcome() {
alert("welcome command works");
var focusedWindow = document.commandDispatcher.focusedWindow;
var focusedDoc = document.commandDispatcher.focusedWindow.document;
var argc = gCopyLinks.GetLinks.arguments.length;
var argv = gCopyLinks.GetLinks.arguments;
var reMask;

var selLinks = [];
for( i = 0; i < focusedDoc.links.length; i++) {
if((!bSelected || focusedWindow.getSelection().containsNode(focusedDoc.links[i], true)) && (argc <= 1 || focusedDoc.links[i].href.match(reMask))) {
selLinks[j] = focusedDoc.links[i].href;
j++;
}
}

}

最佳答案

How do I run this type of add-on from a button instead of a right click? (I'm assuming it has something to do with the EOL function)

不,它与 EOL 函数无关 - 该函数仅确定所使用操作系统的行尾字符序列。如果单击其菜单项,扩展程序的覆盖层将调用 gCopyLinks.OnCommand('all') ,我猜您想添加一个执行相同操作的按钮。请参阅https://developer.mozilla.org/en/XUL_School/Adding_Toolbars_and_Toolbar_Buttons关于在扩展中添加工具栏按钮。

Is there anything I need to be aware of when converting add-ons other than cross browser compatibility?

是的。扩展程序具有 Web 内容所没有的特殊权限。特别是,目前没有 API 允许 Web 应用程序将数据复制到剪贴板。然而,其中之一是 proposedbeing worked on .

关于javascript - 对 Firefox 扩展进行逆向工程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6788803/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com