我正在编写一个GM脚本,有一件事我意识到我反复做的是一遍又一遍地做同样的代码.具体来说,是样式属性.
function createButton() {
var a = document.createElement('a');
a.href = '#';
a.innerHTML = 'Print Topic';
a.style.position = 'absolute';
a.style.right = '3em';
a.style.top = '6em';
a.style.fontFamily = 'Arial,Helvetica,sans-serif';
a.style.fontWeight = 'bold';
a.style.fontSize = '125%';
a.style.background = '#777777 none repeat scroll 0 0';
a.style.color = 'white';
a.style.padding = '6px 12px';
document.body.insertBefore(a, document.body.lastChild);
}
Run Code Online (Sandbox Code Playgroud)
正如你在我的示例代码中看到的那样,我反复写了很多次.你有技术可以避免这种混乱吗?只是为了优雅.
谢谢 -
伙计们,这是减少的代码:
function createButton() {
var a = document.createElement('a');
var css = document.createElement('style');
css.type = 'text/css';
css.innerHTML = '#prt { position:absolute; right:3em; top: 6em; font-family: Arial,Helvetica,sans-serif; font-weight:bold; …Run Code Online (Sandbox Code Playgroud) 我想重新加载页面,以便它不会导致整页刷新的效果,例如在页面选项卡上显示"正在加载...".
这是我到目前为止的代码.我的理论是,我可以body使用<frame>已更新网站的包装版本覆盖该部分,获得通过GM_xmlhttpRequest.
setInterval(reload, 10000);
function reload() {
GM_xmlhttpRequest({method: 'GET',
url: location.href,
onload: function(responseDetails) {
document.body.innerHTML =
'<frame>\n'
+ responseDetails.responseText
+ '</frame>\n';
}});
}
Run Code Online (Sandbox Code Playgroud)
在stackoverflow.com上使用Firebug进行测试时,我发现此脚本更新了body ,就像我执行了整页刷新一样,没有副作用.好极了!神秘的是,这些<frame>标签无处可寻.
我现在所做的就是重新加载页面,但我有两个问题:
<frame>标签body?到目前为止,我已经收集了Cleiton,Havenard和Henrik的答案中的元素.我尝试通过发送header: { 'Cookie': document.cookie }的数据中的条目发送cookie GM_xmlhttpRequest.这发送了一些但不是所有的cookie.事实证明,如果我打开的Firefox的第三方Cookie,然后我会得到必要的额外的饼干(.ASPXAUTH,ASP.NET_SessionId,和user),但是这是一个坏主意.
我如何编写一个 Greasemonkey 脚本来遍历 URL 列表(在同一域中)并启用对生成的 DOM 执行 XPath 查询?
谢谢
我今天正在查看一个greasemonkey脚本,试图弄清楚为什么它不再起作用了。玩了一段时间后,我意识到它在 firefox 3.6 上运行良好,但在当前版本 (8) 等更高版本上却运行良好。
经过一番谷歌搜索后,我来到了这里。
我不确定我是否正确阅读了这篇文章。WebSQL 完全从 Firefox 中删除是因为标准化过程已陷入“僵局”,因为除了 SQLite 之外没有其他实现?这是否意味着依赖WebSQL的greasemonkey脚本需要ff 3.6才能正常运行?
我想知道简单地将 SQLite 分叉到 NotSQLite 并让标准化过程继续下去会有多困难......
网址是:lexin.nada.kth.se/lexin/#searchinfo=both,swe_gre,hej;
我的脚本是:
function main(){
var links=document.getElementsByTagName("a");
alert("There are " + links.length + "links.");
}
main();
Run Code Online (Sandbox Code Playgroud)
运行脚本会给我两条警告消息说
有 0 个链接。
有什么想法为什么我无法从文档中获得正确数量的链接?为什么我会收到两次警报?
javascript dom greasemonkey getelementsbytagname tampermonkey
当我访问www.reuters.com时,我无法弄清楚为什么这至少不会提醒我一次.我错过了什么吗?
// ==UserScript==
// @name test3
// @namespace test3
// @version 1
// ==/UserScript==
$(document).ready(function () {
var actualHost = window.location.toString();
var intendedHost = "www.reuters.com";
alert("Debug 1 - " + actualHost);
if (actualHost == intendedHost) {
alert("Debug 2 - " + actualHost);
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在写一个 Greasemonkey 脚本。我想在用户按下“Q”键时触发某个代码运行。我做了一些研究,我看到的大多数来源都建议使用window.onkeypress.
为了测试此方法,我创建了一个用户脚本,设置为在用户按下 时运行Q。这是我的代码:
window.onkeypress = function(event) {
if (event.keyCode == 81) {
alert("This is a test.")
}
}
Run Code Online (Sandbox Code Playgroud)
然而,按下 Q 键后,什么也没发生。我想知道是否有人知道这可能是为什么以及我可以做些什么来纠正它。
此外,如果有人知道我可以用来达到相同效果的任何其他方法,将不胜感激。
我写了一个 Greasemonkey 脚本,它在所有站点上运行,检查一些事情。
因为它在每个页面上运行,所以性能很重要。因此,我想知道 Firefox 插件是否会更快。
所以这些是我的问题:
更新:
一些背景信息 - 我正在对我的脚本进行页面加载延迟评估。
更新 2(更多信息):
我的脚本的头部如下所示:
// ==UserScript==
// @name My Script
// @namespace abc
// @description What it does
// @include *
// @resource moz_list http://mxr.mozilla.org/mozilla/source/netwerk/dns/src/effective_tld_names.dat?raw=1
// @resource resource_B http://mysite.org/res
// @version 1.0
// @grant GM_xmlhttpRequest
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_getResourceText
// ==/UserScript==
Run Code Online (Sandbox Code Playgroud)
此外,我使用这些技术:
在伪代码中,我的主要功能是这样的:
var host = …Run Code Online (Sandbox Code Playgroud) 我有一个 XPath /html/body/div[1]/div/div/center[1]/table,我想让它不再可见。
我看到我可以使用,document.evaluate()但我不知道如何隐藏它。
您能否提供建议-如何使用Tampermonkey删除/隐藏整个div块?如下所示的代码:如果整个div“相对ember-view”中包含在父div“相对ember-view”内部深处包含文本ADSWG的跨度,如何删除?因此,在网页上有很多“相对ember-view” -div,但是我试图仅删除这些,在span标签中包含ADSWG。
希望,我已经解释清楚了。先感谢您。
<div id="ember175" class="relative ember-view">
<div id="ember177" class="occludable-update ember-view">
<div .....
<span class="...
<div id="ember270" class="
<span id="ember273" class="ember-view">
<span>ADSWG</span>
Run Code Online (Sandbox Code Playgroud) greasemonkey ×10
javascript ×6
tampermonkey ×4
firefox ×2
jquery ×2
userscripts ×2
ajax ×1
dom ×1
html ×1
keypress ×1
loading ×1
performance ×1
sqlite ×1
url ×1
web-sql ×1
xpath ×1