问题标签 [greasemonkey]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
14012 浏览

javascript - Greasemonkey 脚本和函数作用域

这是我的脚本代码:

我唯一的问题是单击 Hello World 时页面找不到 test() 函数。请告诉我,我不必像这样通过将函数innerHTML'ing 到页面上来解决。还有其他方法吗?

谢谢。

0 投票
3 回答
2854 浏览

javascript - 从 Greasemonkey 调用 jQuery UI 对话框时抛出错误

每当我尝试从 Greasemonkey 创建一个对话框时,我都会遇到这个尴尬的错误......我相信这与 XPCNativeWrapper https://developer.mozilla.org/en/XPCNativeWrapper#Limitations_of_XPCNativeWrapper的限制有关 ,尽管我是不是100%确定。

我使用的核心 jQuery 方法都没有导致错误(append、css、submit、keydown、each、...)。

这可能是 Greasemonkey 中的错误,或者是由于 Greasemonkey 和 jquery ui 之间的交互,但我真的很想弄清楚如何让它们一起工作。

错误:[异常...“组件不可用”nsresult:“0x80040111(NS_ERROR_NOT_AVAILABLE)”位置:“JS 框架 :: file:///home/daniel/.mozilla/firefox/.../components/greasemonkey. js :: 匿名 :: 第 347 行”数据:否] [打破此错误] if (line) {

Firefox 版本:Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.6) Gecko/2009020911 Ubuntu/8.04 (hardy) Firefox/3.0.6

更新:标准 jQuery 库中的 focus() 方法也会抛出相同的错误:

也许 UI 在某个时候调用了 focus 方法?

任何帮助将不胜感激!

0 投票
1 回答
605 浏览

javascript - 将选定区域作为图像上传到服务器

我想创建一个应用程序(Firefox 扩展),它将抓取一个屏幕区域,保存为图像并上传到服务器。

这是我的路线图:

首先,我将创建一个适用于所有域的greasemonkey用户脚本。当任何页面加载时,它会添加一个名为screengrab + upload. 当用户单击按钮时,它将添加一个鼠标处理程序,以便我可以绘制一个div元素。

通过这个可调整大小div的元素,我将在网页上选择一个矩形区域。在MouseUp事件中,我将在选定区域上添加一个等效Canvas元素。

然后我将使用todataurl函数将所选区域转换为图像/png。现在,我想将此数据上传到我的服务器。因为我的服务器与网页的域不同,所以我需要通过跨域脚本将数据(image/png base64 编码)上传到服务器。

对于图片上传,我将iframe在网页中添加一个隐藏在我的域中的内容。从网页,数据将作为变量发布到此iframe,然后从iframe,数据将发布到我的服务器。

最后,我将使用编译器/转换将greasemonkey脚本转换为FireFox 扩展。

我可以这样申请吗?请提出正确的方法来做到这一点。

0 投票
5 回答
1464 浏览

javascript - 启动一个应用程序来记录与greasemonkey保持一致

我让我的greasemonkey 脚本扫描我访问的每个页面以查找特定字符串。我想在sqlite db中记录字符串的变化。我每隔一段时间就会有另一个应用程序处理这个数据库。我不知道如何将数据存储到 sqlite db 中?我在想如果找到字符串,我可以自动启动一个可执行文件,但我不知道如何通过 javascript 来做到这一点。我认为的另一种选择是在某个端口上侦听套接字并具有一些 js 魔法,但我想不出一种静默的方式来发送这样的数据。

0 投票
2 回答
1896 浏览

javascript - Greasemonkey 脚本可以覆盖 AdBlock 过滤器吗?

我有一个Greasemonkey脚本试图访问Adblock禁用的 HTML 元素。是否可以使用 Greasemonkey 脚本创建解决方法以防止与 Adblock 插件发生冲突?

我对任何想法持开放态度,但是目前更改脚本以避免 Adblock 元素并不是解决方案。

附加信息

我试图“启用”的 addblock 元素是来自谷歌搜索结果的 Table 元素。

隐藏元素的 Adblock 过滤器是:

更新:有些人建议我简单地禁用我正在处理的页面的 adblock 过滤器。我也认为这是一个非解决方案,因为任何使用我的脚本的人都必须执行相同的操作,而且我不能指望我的所有用户都手动修改他们的 Adblock 设置。

0 投票
2 回答
1257 浏览

javascript - 如何捕获定期刷新 gmail 收件箱的 Ajax 事件

我正在尝试编写一个适用于 Gmail 的 Greasemonkey 脚本。我知道如何创建响应用户单击收件箱链接或刷新链接的 javascript。我的问题是 Gmail 会定期用新对话刷新收件箱,而我无法捕获此事件。有没有办法在 javascript 中捕获周期性的 Ajax 事件?

0 投票
6 回答
41728 浏览

javascript - 如何从 Greasemonkey 脚本中截获 XMLHttpRequests?

我想使用 Greasemonkey 捕获 AJAX 请求的内容。

有人知道怎么做这个吗?

0 投票
3 回答
1052 浏览

javascript - 请检查我的 Javascript 代码段。这是 FB Mobwars 的油脂猴脚本

嘿伙计们,我正在通过开发greasemonkey 脚本来练习我的Javascript 编程,理论上它会改进我的javascript 编码,因为它是原始的javascript。

所以现在,我正在为 Mobwars facebook 编写一个脚本。这是一个游戏,你可以杀人、偷东西、制造怪物等等。

为了更好地理解这一点,这是页面的屏幕截图:

alt text http://www.picamatic.com/show/2009/03/18/08/11/2877480_703x486.png 我要做的是扫描页面,获取作业名称并显示它给用户。

我想要获取 Mugging、House Burgary、Stoplight Car Theft 等文本

文本具有设置为银色的颜色属性。

看看我的代码,我在 Firebug 中尝试过,但它甚至没有发出警报..

告诉我代码有什么问题。我会调整这段代码,如果我设法修复它,我会在这里再次报告。谢谢

0 投票
4 回答
2066 浏览

javascript - 检查 gmail 按钮的 javascript 调用

我正在为gmail编写一个greasemonkey脚本,其中知道单击“发送”按钮时进行了哪些函数调用非常有用。(我无法使用 firebug 找到它,但我对 javascript 调试相对较新。)似乎应该能够检测到这一点,我只是不知道要使用什么工具。

非常感谢您的帮助。

ps 最终的目标是能够为传出的 gmail 消息提取一个唯一的消息 id,我认为它会出现在这个 javascript 调用中——所以如果有另一种方法可以做到这一点,那也可以。

0 投票
3 回答
958 浏览

firefox - 在没有 current() 的情况下获取当前节点和另一个节点之间的所有节点?

我正在研究一个 Greasemonkey 脚本,该脚本需要在其他两个节点之间的每个节点上运行。目前,我正在使用(越来越复杂的)XPath 表达式获得第一个节点。我有另一个表达式来获取“中间”节点,但它包含两次初始表达式并且变得相当长。这是一个仅包含两个“子句”的早期版本:

我正在寻找的是一种基于上下文节点选择“内容”的方法,而不是多次重新包含原始表达式——“标题”表达式将很快变得相当复杂。我知道这可以在 XSLT 中使用该current()函数来完成,但当然这在 vanilla XPath 中不可用:

当我键入此内容时,我突然想到,此时使用 DOM 收集内容可能比 XPath 更容易,但我仍然很想知道这是否可以完成。

该脚本的原始版本可在 UserScripts.org 上找到