Tag: greasemonkey

检测JavaScript中embedded的iFrame

我有一个具有特定页面的应用程序 – 我们称之为页面A.页面A有时是顶层页面,但有时也被embedded为页面B中的iframe。所有页面来自同一个服务器,并且没有跨域问题。 我有一个在页面A上运行的greasemonkey脚本。grepmonkey脚本如何检测页面A是否在iframe上下文中?

如何设置@grant值时如何访问`window`(目标页面)对象?

假设我正在使用以下网页: <html> <body> <span id="click">click me</span> <script> var hello = function() { alert('hello'); } document.getElementById('click').addEventListener('click', function(e) { hello(); }); </script> </body> </html> 我的Greasemonkey脚本是: // ==UserScript== // @name My Script // @include http://example.com/hello.html // @version 1 // @grant none // ==/UserScript== window.hello = function() { alert('goodbye'); } 在禁用Greasemonkey脚本的情况下,单击页面上的#click元素将显示“hello”警报。 启用脚本后,单击该元素将显示“再见”警报。 很简单。 来自网页的hello函数正在被Greasemonkey脚本中的函数取代。 现在让我们说我想使用Greasemonkey API。 当我将@grant值设置为“none”以外的有效值(例如// @grant GM_setClipboard […]

window.location.href改变时的事件

我正在写一个网站的Greasemonkey脚本,在某些时候修改location.href 。 当window.location.href在页面上发生变化时,如何获得一个事件(通过window.addEventListener或类似的东西)? 我也需要访问指向新的/修改后的url的文档的DOM。 我见过其他解决scheme,涉及超时和轮询,但我想避免,如果可能的话。

我如何拦截Greasemonkey脚本中的XMLHttpRequests?

我想使用Greasemonkey捕获AJAX请求的内容。 有谁知道如何做到这一点?

如何获得一个AJAX获取请求等待页面被渲染之前返回一个响应?

我正在为本网站 (Site1)中的页面编写Greasemonkey脚本。 Site1有各种交易和提供,我的GM脚本旨在做到以下几点: 当访问Site1上的一个报价时,该脚本查询Site2以确定该酒店是否也在Site2上列出。 如果是这样,则在Site1上显示来自Site2的search结果。 问题是Site2显示进度条(“加载结果”),然后显示结果。 因此,我的Ajax请求总是返回空的结果,看起来像这样(请参阅红框部分): (点击查看大图) 但是,它实际上应该具有来自Site2的search结果的完整内容,如下所示: (点击查看大图) 我尝试了同步Ajax请求以及GM_xmlhttpRequest无济于事。 这是网站2有问题的进度栏: (点击查看大图) 我怎样才能得到的AJAX请求等待Site2上的search完全呈现之前,返回到Site1的响应? 作为参考, 我的完整工作脚本代码位于pastebin.com 。 这是相关的片段: $(document).ready(function(){ var rewardsSiteResults = $('<div class="panel deal-panel rc-lr"></div>').attr('id', "rewardsSiteResults") .html("<p>" + progressMessageText + "</p> ").append(spinnerGif); $(insertSelector).after(rewardsSiteResults); var addressMap = getAddressOfHotel(); var pinCode = addressMap[pinCodePlaceHolder]; var hotelName = addressMap[hotelNamePlaceHolder]; var queryURL = constructQueryURL(pinCode, hotelName); $.ajaxSetup({async:true, timeout: 5000}); $.get(queryURL,null, […]

Fire AJAX请求上的Greasemonkey脚本

我正在处理一个用户脚本,我刚刚发现,当主页面发出AJAX请求时脚本没有运行。 有什么办法在主页面加载和AJAX请求上触发用户脚本?

从Greasemonkey访问variables到页面(反之亦然)

我在</ body>之前运行的test.js中有以下代码: alert('stovetop'); alert(greasy); 我在test.user.js中有以下代码: (function () { 'use strict'; var greasy = 'greasy variable'; document.title = 'greasy title'; }()); “炉灶”得到提醒,所以我知道页面JavaScript的作品, document.title获取更改,所以我知道脚本JavaScript的作品。 但是,在网页上我得到的错误: 错误:ReferenceError:油腻未定义源文件:/test.js 如何从网页访问由Greasemonkey设置的variables,反之亦然?

重写!重要的风格

标题几乎总结起来。 外部样式表具有以下代码: td.EvenRow a{ display: none !important; } 我曾尝试使用: element.style.display = "inline"; 和 element.style.display = "inline !important"; 但都不起作用。 是否有可能重写!重要的风格使用JavaScript。 这是为了延长油门钥匙,如果这有所作为。

我如何在Greasemonkey中使用jQuery?

我试图把这一行,但它不工作: // @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js jQuery在Greasemonkey中根本不起作用。 有没有其他的方法来在Greasemonkey中使用jQuery? – 对于所有有同样问题的人,您必须将file upload到greasespot,然后从那里安装。 创build新脚本选项不起作用!

我如何在Google Chrome的Greasemonkey脚本中使用jQuery?

正如您可能知道的一样,Google Chrome已经对Greasemonkey脚本进行了一些严格的限制。 Chromium不支持@require , @resource , unsafeWindow , GM_registerMenuCommand , GM_setValue或GM_getValue 。 没有要求,我找不到一种方法来在Google Chrome中的Greasemonkey脚本中包含jQuery库。 有没有人在这个问题上有一些build议?