javascript - Greasemonkey 的隐藏功能

标签 javascript greasemonkey

<分区>

人们在 Greasemonkey 脚本中使用了哪些鲜为人知但有用的功能和技术?

(拜托,每个答案只有一个特征。)

类似话题:

最佳答案

Greasemonkey 脚本经常需要在页面上搜索内容。与其深入研究 DOM,不如尝试使用 XPath 来定位感兴趣的节点。 document.evaluate() 方法允许您提供 XPath 表达式并将返回匹配节点的集合。这是一个不错的 tutorial让你开始。例如,这是我编写的一个脚本,它会导致 phpBB3 帖子中的链接在新选项卡(在默认皮肤中)中打开:

// ==UserScript==
// @name           New Tab in phpBB3
// @namespace      http://robert.walkertribe.com/
// @description    Makes links in posts in phpBB3 boards open new tabs.
// ==/UserScript==

var newWin = function(ev) {
    var win = window.open(ev.target.href);
    if (win) ev.preventDefault();
};

var links = document.evaluate(
        "//div[@class='content']//a[not(@onclick) and not(@href='#')]",
        document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for (var i = 0; i < links.snapshotLength; i++) {
    var link = links.snapshotItem(i);
    link.addEventListener("click", newWin, true);
}

代码中使用的 XPath 表达式标识所有 a 元素 1) 没有 onclick 属性,2) 其 href 属性未设置为 "#",并且 3) 在 div 中找到,其 class 属性设置为 "content".

关于javascript - Greasemonkey 的隐藏功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/121167/

相关文章:

javascript - 为什么像 “owl.carousel” 这样的 JavaScript 在 Odoo 10 Web 模板中不起作用?

javascript - Angular - 输入值和选择占位符不起作用

javascript - 修复 ESPNConversations(添加暂停复选框)

javascript - 如何处理 404 页面上的权限被拒绝异常?

jquery - 使用greasemonkey/tampermonkey(例如SO)使 Bootstrap 模式与另一个网站一起工作

url - 自动向URL添加文本/在您不拥有的网站上重定向

javascript - 对整数数组进行排序并显示输入值

javascript - Jquery:延迟和淡入多个div onload?

javascript - 是否可以将 javascript 插入到 Google Chrome 的 "Inspect Element"中?

javascript - 为什么@require-ing jQuery 在带有@run-at document-start 的脚本中抛出错误?