标签: userscripts

如何检查链接是否已被访问?

我正在为自己写一个用户脚本,我有一个永久链接列表,我想隐藏我已经访问过的那些。我在想我可以使用 jquery 并检查链接是否已被访问(默认颜色=紫色),如果是,则隐藏元素。

但是......我无法弄清楚如何实际检查这个。.attr('style');只有border: none在 .css() 无效时才能得到我。

我如何检查链接是否已被点击?我正在使用greasemonkey 在firefox 4.0.1 上进行测试,但我将在chrome 上使用它。

css firefox google-chrome hyperlink userscripts

3
推荐指数
1
解决办法
2848
查看次数

Greasemonkey @require在Chrome中不起作用

我正在尝试使用Greasemonkey的@require/ @include方法添加jQuery ,但它不起作用.出现以下错误:

Uncaught ReferenceError: $ is not defined (repeated 10 times)
Run Code Online (Sandbox Code Playgroud)

这是我的示例代码:

// ==UserScript==
// @description Bored, really bored.
// @name MatteoSample
// @namespace MatteoSampleNamespace
// @include *
// @include       http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==

$(document).slideUp();
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

greasemonkey google-chrome userscripts

3
推荐指数
1
解决办法
4775
查看次数

用户脚本的两个实例如何在框架之间进行通信?

请参考具有相同的JavaScript以便在网页和iframe中运行的技术,如此答案所述

例如,假设您在domain_A.com上具有此页面:

<html>
<body>
    <iframe src="http://domain_B.com/SomePage.htm"></iframe>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果您像这样设置@match指令:

// @match http://domain_A.com/*
// @match http://domain_B.com/*
Run Code Online (Sandbox Code Playgroud)

然后您的脚本将运行两次-一次在主页上,一次在iframe上,就好像它是一个独立页面一样。


使脚本的两个实例相互通信的选项有哪些?

这将是同步实例所必需的。例如,只有在网页脚本实例完成后才让iframe脚本实例执行其任务,反之亦然。

javascript iframe synchronization cross-domain userscripts

3
推荐指数
1
解决办法
1939
查看次数

如何在包含JavaScript的页面上提交第一个表单?

如何使用Tampermonkey上的用户脚本自动提交页面上的第一个表单?

例如,页面上有三个表单/提交按钮.加载用户脚本后,它会自动提交页面上找到的第一个表单,就像按下提交按钮一样.

javascript forms form-submit userscripts tampermonkey

3
推荐指数
1
解决办法
1237
查看次数

如何在加载 AngularJS 库后运行 userscript(/greasemonkey)

我只是想为 Angular 对象创建一些扩展,以使 AngularJS 调试更加方便。

但是当我运行 add userscript 时,它找不到角度对象。AngularJS 库加载在标签底部。

UPD:@estus 提供了正确的答案,但如果你想使用 chrome,你需要通过Tampermonkey扩展安装它。

您可以在此处找到最终的代码片段。

userscripts angularjs

3
推荐指数
1
解决办法
5483
查看次数

点击对此Google翻译按钮不起作用?

我正在创建一个Tampermonkey用户脚本,它会自动点击谷歌翻译网站上的"星标"按钮并保存我的搜索,以便我以后可以查看它们并进行排练.

这是我定位的按钮: 在此输入图像描述

这是我到目前为止所得到的:

// @match        https://translate.google.com/#en/de/appetit/
var el = document.getElementById("gt-pb-star");
setTimeout(function(){
el.click();
},4000);
Run Code Online (Sandbox Code Playgroud)

我遇到了2个问题.

  1. @match应该是每个translate.google.com搜索,而不仅仅是胃口.如何指定整个域?
  2. 我尝试使用click()方法单击"星形"按钮,但它不起作用.不知道为什么.

你能帮我完成这个用户吗?

编辑:看来,设置matchhttps://translate.google.com/处理的第一个问题.仍然不知道为什么click()不起作用.

javascript greasemonkey userscripts tampermonkey

3
推荐指数
1
解决办法
477
查看次数

为什么将 grant 从 none 更改为 GM_xmlhttpRequest 会破坏我的代码?

简而言之,我不想将警报 URL 和响应正文发送到我的应用程序。此代码有效,但除非我授予它,否则我无法使用 GM_xmlhttpRequest。

不做任何改变,代码就会神奇地崩溃。我不确定发生了什么变化以及如何修复它。我以为我可以使用console.log数据并将其复制/粘贴到我的应用程序中,但 Facebook 禁用了 console.log。

我想过做 xmlhttpRequest 但这也被某种方式阻止了。我通过在控制台中执行代码进行测试。这 3 行似乎在除了 Facebook 域之外的任何地方都有效。我认为这与CORS有关。

// ==UserScript==
// @name        FBTest
// @namespace   test
// @include     https://*.facebook.com/*
// @version     1
// @grant       none
// ==/UserScript==
//change none to GM_xmlhttpRequest
(function() {
    var proxied = window.XMLHttpRequest.prototype.open;
    window.XMLHttpRequest.prototype.open = function(method, url) {
        alert(url);
        return proxied.apply(this, [].slice.call(arguments));
    }; 
})();
Run Code Online (Sandbox Code Playgroud)

javascript greasemonkey facebook userscripts tampermonkey

3
推荐指数
1
解决办法
1626
查看次数

Tampermonkey 选择下拉值。它没有 ID 或名称,只有一个类?

我正在写一个Tampermonkey代码,例如网页ConverTo
它应该自动选择下拉第二个选项:

<select class="format-select">
    <option value="mp3">MP3</option>
    <option value="mp4">MP4 (video)</option>
</select>
Run Code Online (Sandbox Code Playgroud)

, 页面完全加载后几秒钟。
但什么也没有发生。

我的代码:

......
// @match      https://www.converto.io/*
// @require    http://code.jquery.com/jquery-1.11.0.min.js
// ==/UserScript==

$(document).ready(function(){
setTimout(test(),10000); 
function test() 
{ 
    $(".format-select").val('mp4'); 
}
})();
Run Code Online (Sandbox Code Playgroud)

请帮忙!

jquery select greasemonkey userscripts tampermonkey

3
推荐指数
1
解决办法
2693
查看次数

如何访问被覆盖的对象的内置方法?

一个网页正在将一个内置的 javascript 方法设置为null,我正在尝试找到一种方法来调用用户脚本中的重写方法。

考虑以下代码:

// Overriding the native method to something else
document.querySelectorAll = null;
Run Code Online (Sandbox Code Playgroud)

现在,如果我尝试执行document.querySelectorAll('#an-example'),我会得到异常Uncaught TypeError: null is not a function。原因是该方法已更改为null并且不再可访问。

我正在寻找一种方法来以某种方式恢复对用户脚本中方法的引用。问题是网站可以覆盖对任何东西的引用(甚至包括Document,ElementObject构造函数)。

由于该网站还可以方便地设置参考null,我需要一种方法来找到一种方法来访问querySelectorAll方法的网站将无法覆盖

挑战在于,在我的用户脚本在页面上执行时,任何方法(例如createElementgetElementsByTagName(除了它们的prototypes))都可以被覆盖null

我的问题是,如果它们也被覆盖,我该如何访问DocumentHTMLDocument构造函数方法?


笔记:

由于浏览器限制, Tampermonkey无法在文档的开头运行我的脚本,因此我无法保存对我想要使用的方法的引用,如下所示:

// the following code cannot be run at the beginning of the …
Run Code Online (Sandbox Code Playgroud)

javascript overriding object userscripts tampermonkey

3
推荐指数
1
解决办法
709
查看次数

什么是 GM_registerMenuCommand() 的 `accessKey` 参数以及如何使用它?

我正在查看Tampermonkey中的GM_registerMenuCommand函数,我注意到调用了第三个参数,accessKey并认为它是传递一个热键来触发此命令。

传递的参数的格式是什么,我是否错误地假设这是它的作用?

我在任何地方都找不到有关该参数的文档。这里有人以前用过吗?

javascript greasemonkey userscripts tampermonkey

3
推荐指数
1
解决办法
1413
查看次数