问题标签 [userscripts]

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 回答
563 浏览

jquery - Greasemonkey 用户脚本:在 jQuery 中粘贴?

我正在开发一个仅用于 Firefox 的 Greasemonkey 脚本,我需要一些帮助。我打算使用 jQuery,以后可能还会使用其他一些脚本。由于@requirefor GM 仅在初始安装时下载脚本,因此以后对代码的更新不会下载对外部脚本的更新。

因此,我想知道:如果我粘贴原始 jQuery 代码会发生什么?IE 在这里找到的那​​个:http: //ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js

它会导致错误吗?如果使用该脚本的网站使用 jQuery 1.3.2 并且我将 jQuery 1.4.2 粘贴到页面中会怎样,反之亦然?基本上,如果我粘贴 jQuery、jQuery UI 等脚本的完整源代码,会导致哪些缺点或错误?

谢谢!

0 投票
4 回答
22640 浏览

javascript - Greasemonkey 和全局变量

我是 JavaScript 和 Greasemonkey 的菜鸟,我想写一个简单的脚本。

我知道 Greasemonkey 使用匿名函数包装您的代码,因此您的变量在离开当前页面后将不存在。但是,我需要一个全局变量。我尝试使用 unsafeWindow 和 window 对象,如下所示:

如果我刷新页面,则条件的值始终为真。

有没有办法在 Greasemonkey 中使用全局变量?

0 投票
2 回答
2696 浏览

javascript - 在 Safari 扩展中使用 jQuery

我正在尝试制作一个仅注入自定义 javascript 的简单 Safari 5 扩展。请问有什么想法可以在这个自定义脚本中使用 jQuery 吗?我只知道这是可能的,因为在 WWDC 视频之一中提到了它,但我不知道该怎么做。

谢谢

0 投票
1 回答
751 浏览

javascript - Safari 似乎缓存了页面和 DOM 状态

我编写了一个 Greasemonkey javascript,它在 NinjaKit 新的 Safari 用户脚本管理器中运行良好,但是当我尝试使用 Safari 5 扩展构建器编译相同的脚本时,我得到了一些非常奇怪的行为。

该脚本为用户提供了一个选项编辑屏幕,当您单击保存按钮时,该脚本通过 HTML5 localstorage API 将用户首选项保存为 JSON 数据包,然后该脚本关闭选项屏幕并重新加载页面,在页面重新加载时,脚本应该从本地存储中的 JSON 重新加载首选项,并且脚本应该根据新的首选项根据他们所做的设置以用户想要的方式显示页面。

我看到的问题是,当我将它作为扩展程序运行时,当我单击保存按钮时,脚本会重新加载页面,但是当重新加载页面时,用户对设置所做的更改不会应用于页面。奇怪的是,如果我通过浏览器刷新按钮再次手动重新加载页面,用户在设置中所做的更改会突然变得明显。所以显然数据已保存到本地存储,但由于某种原因,当页面第一次重新加载时,它以某种方式从缓存文件中重新加载,并且只有在第二次手动重新加载时,新页面才能正确显示。我不明白为什么这在 ninjakit 中可以作为普通用户脚本使用,并且实际上也可以在 Firefox、Opera 和 Google chrome 中使用,它只是不能作为 safari 中的扩展程序,它太烦人了。一世'

顺便说一句,我没有使用本机 safari 扩展设置系统,因为我希望脚本跨浏览器兼容,所以这就是我将设置保存到 localstorage 的原因。

有没有其他人目睹过这种行为?或者有任何线索如何解决这个问题?这让我很精神...

0 投票
1 回答
151 浏览

gmail - 是否有任何可靠的方法可以从用户脚本中访问 Gmail 的特定元素?

我想制作一个脚本,用从我的服务器中提取的内容替换联系页面中的注释框或对话线程的侧边栏,这与 Rapportive ( http://rapportive.com/ )的方式非常相似作品。我什至希望能够以他们的方式获取正在查看或发送电子邮件的人的电子邮件地址。

但 Rapportive 使用浏览器扩展。有什么办法可以通过greasemonkey脚本完成吗?

这是我应该使用小工具的东西吗?我可以从小工具中获取当前“上下文”的电子邮件地址吗?

0 投票
1 回答
2751 浏览

google-chrome - 通过 Chrome 中的用户脚本替换页面功能?

我创建了一个替换页面功能的 Greasemonkey 脚本:

我一直希望这个脚本同时在 Gresemonkey 和 Chrome 中工作,并且读过 Chrome 不支持unsafeWindow,所以一直通过将函数转换为字符串并使用将脚本注入页面setTimeout

这在 Greasemonkey 中运行良好,但在 Chrome 中完全没有给我任何东西。它显然没有触发,但日志中也没有出现任何内容。我已经尝试了许多其他的注入方式,但没有任何效果。(为了测试,我还在alert()函数顶部添加了一个。)

  1. setTimeout(..., 0)- 没有
  2. 在范围内运行函数,而不注入页面——没有警报,但在控制台中“未定义函数”
  3. document.href = "javascript:..."- 没有
  4. document.body.addEventListener("load", ...)- 没有

所有这些都与@run-at document-end.

不幸的是,这是我的第一个 Chrome 用户脚本,我不知道如何调试它,即使经过一个小时左右的谷歌搜索和搜索。有什么帮助吗?

实际脚本,目前在 Greasemonkey 中工作:http: //pastebin.com/HtLVjYHg

0 投票
2 回答
969 浏览

xcode - 更改 Mogenerator 的默认参数

我试图让Core Data 对象继承自我自己的自定义类而不是 NSManagedObject。我开始使用 Mogenerator 并注意到它有一个--base-class参数,它完全符合我的要求。

问题是默认情况下它不使用这个参数,所以每次我保存我的数据模型文件时,它都会将继承的类设置为NSManagedObject. 有没有办法将此附加参数添加到脚本中,以便每次保存.xcdatamodel文件时它都能按我的意愿工作?

如果没有,有没有其他方法可以轻松地从 Xcode 运行此命令?我正在考虑将其创建为用户脚本。问题是我不希望它硬编码到这个项目的文件中。这是我需要运行的命令行示例:

理想情况下,它应该找到.xcdatamodel当前项目的文件。由于我没有 mac 开发经验,如果您能指出正确的方向并告诉我如果确实自己制作这个脚本,哪些命令对我最有用,我将不胜感激。

0 投票
1 回答
208 浏览

javascript - 用 UserStyle 替换 JavaScript 函数

我正在修改 Instapaper 的 UserStyle。由于编写了最初的 UserStyle,Instapaper 在其标题中添加了一些 JavaScript 函数来控制页面的宽度和使用的字体。

他们来了:

我将如何修改 UserScript 以覆盖这些函数,因为它们在加载后执行?

到目前为止,我已经尝试用空白覆盖简单地替换这些函数,但它没有用。由于我的脚本首先执行,有什么方法可以删除标题中的整个 JavaScript 块?

0 投票
2 回答
253 浏览

php - 是否有一个 PHP 脚本可以扫描我服务器上的文件并告诉我何时/是否更改?

几个月前,我看到了一个 PHP 脚本,用于检测文件中的恶意软件注入。基本上,该脚本会监视服务器上的任何文件是否发生更改或它们的内容是否发生更改,然后如果内容发生更改,则通过电子邮件发送给管理员。我无法找到执行此操作的脚本,但我需要一个。

有人知道这样的程序吗?

谢谢!

0 投票
3 回答
3027 浏览

javascript - 触发内联 onchange javascript

我正在编写一个greasemonkey 脚本,该脚本创建一个自动完成搜索类型框,可以更轻松地从网页上的大型下拉列表中进行选择。下拉列表具有内联 onchange 代码,当我使用 javascript 更改选择时,我似乎无法触发。有任何想法吗?