<分区>
人们在 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 模式与另一个网站一起工作
javascript - Jquery:延迟和淡入多个div onload?
javascript - 是否可以将 javascript 插入到 Google Chrome 的 "Inspect Element"中?
javascript - 为什么@require-ing jQuery 在带有@run-at document-start 的脚本中抛出错误?