问题标签 [greasemonkey-4]
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.
html - 使用 GreaseMonkey 从网站隐藏 DIV 的问题
有一个网站,如果没有广告,您将无法查看内容。我已经尝试过 Anti-Ad Blocker,但脚本使所有链接都无法使用。
我尝试编写 Greasemonkey 脚本来手动隐藏这几个广告,但到目前为止它不起作用(我不知道为什么)。
我要删除的元素:
有时也会随机出现不同的 div,从而阻止整个站点:
我不知道如何删除它,因为它没有 ID。
PS网站如下:https ://shinden.pl/
xmlhttprequest - 从 Greasemonkey 脚本拦截 XMLHttpRequest 失败
我试图操纵一个网站使用 Greasemonkey(安装版本 4.9)完成的 XMLHttpRequest。拦截应该很简单(如何从 Greasemonkey 脚本中拦截 XMLHttpRequests?)但对我不起作用。也许新版本的 Greasemonkey 改变了?
我显然尝试了链接问题中的示例,但它们没有任何效果 - 尽管我的console.log(...)
自定义打开功能中有一个,但控制台中没有打印任何内容。
接下来,我unsafeWindow
试了一下。它不应该是必需的。我的用户脚本运行@grant none
和文档(见 这里)说我的脚本应该在内容范围内运行。
有了unsafeWindow
效果,但它完全破坏了 XMLHttpRequest
这在控制台中提供以下输出:
如前所述,XMLHttpRequest 的功能被破坏了。当我使用 Firefox 开发者控制台进一步查看时,我得到了这个
任何设置在window
(like window.foobar = "foobar"
) 上的属性在控制台中都不存在,但那些设置在上面unsafeWindow
。我认为这与 Greasemonkey 的沙盒有关。
为什么即使我使用 XMLHttpRequest 也有两个版本@grant none
?为什么我的自定义功能受到限制?我可以避免吗?为什么我在窗口上安装事件侦听器时它可以正常工作?
greasemonkey-4 - 读取本地 json 文件(例如从 c: 驱动器)以进行休息服务数据输入
在greasemonkey javascript中,我需要从本地驱动器(例如c:驱动器)读取JSON数据文件。我怎么读?
尝试使用:- GM_getResourceText
restJSONdata,我需要从本地驱动器读取,因为它是一个大数据。
无法阅读它。
javascript - Greasemonkey - 从用户脚本访问页面窗口 Javascript 变量?
我正在尝试从 Greasemonkey 脚本访问页面中加载的 javascript 变量。我直接尝试了 var 名称,或者使用window.varname
(在控制台中工作),但它们都没有加载到greasemonkey 脚本中(窗口变量是undefined
)。
我尝试run-at document-end
并在函数周围使用 setTimeout,但这些都不起作用。
是否需要特定的方法来执行此操作,或者我是否遇到了特定页面的错误?
Accessing Variables from Greasemonkey to Page & 反之亦然将此问题作为问题的第二部分提出,但我没有看到明确的答案。(我会在这个问题下发表评论,但我没有学分)。
greasemonkey - 在不同页面上运行的 2 个greasemonkey 脚本之间共享数据
使用 Firefox 68 和 Greasemonkey 4.9,我想从网页上的脚本中设置一个值,并从另一个网页上的另一个脚本中获取相同的值。它似乎不起作用。我怎样才能做到这一点 ?这是我尝试过的:
脚本 1
脚本 2
即使值在我多次访问http://one.local/stuff/edit时增加,我在访问 http://www.two.local/view 时也无法获得这些值(它仍然是 0 !
javascript - 是否可以使用greasemonkey/tampermonkey 将GM_xmlhttpRequest 用于我的数据表单?
我目前正在研究 GM_getvalue 但它只将数据保存在本地存储中。我想将输入的值保存到 send.php 所在的服务器。
这是我的代码:
有人建议我使用 GM_xmlhttpRequest 但我不知道如何使用它。他告诉我 GM_xmlhttpRequest 看起来像这样:
最后,send.php 代码是什么?
javascript - 是否可以以编程方式设置用户脚本可以运行的网页?
我目前正在开发一个用户脚本,可以在我离开公司后使用几年。目标受众具有基本的计算机知识——足以填写一个简单的配置菜单。
我担心脚本可能会中断,因为 IT 部门可能会移动我在@include
. 我可以记录如何修复脚本,但我想针对我知道非常无能的 IT 部门进行防御性编程。我知道我可以做到以下几点:
- 允许用户在配置页面中指定 URL。
- 将 设置
@include
为非常通用的 ashttps://*.edu/*
并在执行命令之前使用if
语句来确定我们在用户指定的 URL 上。window.location.href
关于这个解决方案的一些担忧:我希望脚本可以在机构之间轻松重用,这就是我*.edu
提到的原因而不是specificschool.edu
. 上面的配置将使脚本在任何网站的每个页面上执行,但由于该语句.edu
,这些操作只有在网页上时才会发生。if
这似乎非常低效,但我知道这可能是在便于携带和效率之间进行权衡。
有没有更好的方法来做到这一点?
javascript - 如何使用greasemonkey在弹出窗口中自动填充文本字段?
所以基本上我有一个文本字段,包含以下元素。
// 文本框的元素定位器如下:
type="text" name="custom_version_ui" value="" id="custom_version_ui" placeholder="" class="custom form-control form-control-full "
我想用特定值自动填充“custom_version_ui”的文本框。此文本框出现在弹出窗口中,并且在页面加载期间不会出现。(一旦我单击呈现弹出窗口的页面上的添加结果按钮,它就会出现)。
当我们单击“添加结果”按钮时,页面的 URL 不会改变。有没有办法自动填写这些字段?
tampermonkey - 更改 UserScript 的 @namespace 键有什么后果?
我想将一些用户脚本从 greasyfork.org 和 openuserjs.org 移动到 GitHub。
目前我在两个站点上手动更新脚本,但我阅读了@downloadURL
和@updateURL
键,所以在 GitHub 的一个地方管理更新似乎是要走的路。
我对@namespace
密钥有点不确定,我想将其更改为指向我的 GitHub URL,因为我读到更改该密钥将阻止现有用户将来更新,因为它在技术上创建了一个新的第二个脚本。
我打算做什么:
- 在 GitHub 上设置所有用户脚本
- 将 GitHub
@downloadURL
和@updateURL
密钥添加到当前在 greasyfork 和 openuserjs 上的脚本 - 在下一次更新中,将
@namespace
密钥更改为 GitHub URL
我的问题:
这种方法会防止不同步并允许现有安装的平稳过渡吗?
javascript - 如何在 javascript 中保存变量,使其在所有 firefox 选项卡中可用
我在 mozilla firefox 中使用greasemonkey 运行两个脚本。这些脚本在不同的网站上运行。在第一个脚本中,我想将一个变量“全局”保存到 firefox 中,这样我就可以在另一个网站的第二个脚本中使用它。
我试过的所有选项都不起作用,所以寻找解决方法。
在第二个脚本中,我希望为第一个脚本中保存的变量设置一个文本框值:
有没有办法让这样的事情发生(将变量全局保存到firefox中),而不会使它变得复杂?
PS:抱歉,如果之前已经回答过,尝试寻找但找不到