如何为 Gmail 制作稳定的书签
How to make stable bookmarklet for Gmail
我制作了一个简单的书签,只需在 Gmail 搜索栏中添加 "is:unread"。
javascript:
(function () {
// add "is:unread" after the query
// e.g. "from:kim-kardashian" -> "from:kim-kardashian is:unread"
document.getElementsByClassName("gb_Df")[0].value =
document.getElementsByClassName("gb_Df")[0].value.concat("is:unread");
// click search button
document.getElementsByClassName("gb_Ef gb_Qf")[0].click();
}
)();
昨天还行,今天不行了,因为className
变了。我假设每个会话的搜索栏 className
都会更改。如果这是真的,是否有另一种方法可以在搜索查询的末尾添加 is:unread
?
您控制范围之外的第 3 方资源通常从未被认为是稳定的。这就是我们标记版本(例如,dev = always in flux)和合同以尝试接近稳定性的原因。
对于这样的东西 HTML 通常比 class 名称更稳定,但是当 Google 不支持该用例时,永远不会说这个插件是稳定的。
因此,如果确实如此,所陈述的是真实的,CSS class 名称在每个会话中都会更改,可以 select 来自 DOM 基于 HTML 结构或其他未散列的属性。
刚刚查看了 gmail,确实 gb_Df
class 名称是搜索栏。我猜你的帐户已经自动选择了一个 Gmail 版本到另一个生成不同 class 名称哈希的 AB 测试。
在这种情况下会选择placeholder
。所以像:
document.querySelector('[placeholder="Search mail"]')
根据经验(完全是轶事),这个值不太可能改变,目前页面上有一个。可以检查其他相当稳定的属性以确保您拥有正确的属性。请记住,像这样的插件黑客是不稳定的,只能通过使用更稳定的 select 来逐步提高稳定性,因为他们所依赖的基础 (Gmail DOM) 正在以 [=35] 的速度发展=].祝你好运:)
我制作了一个简单的书签,只需在 Gmail 搜索栏中添加 "is:unread"。
javascript:
(function () {
// add "is:unread" after the query
// e.g. "from:kim-kardashian" -> "from:kim-kardashian is:unread"
document.getElementsByClassName("gb_Df")[0].value =
document.getElementsByClassName("gb_Df")[0].value.concat("is:unread");
// click search button
document.getElementsByClassName("gb_Ef gb_Qf")[0].click();
}
)();
昨天还行,今天不行了,因为className
变了。我假设每个会话的搜索栏 className
都会更改。如果这是真的,是否有另一种方法可以在搜索查询的末尾添加 is:unread
?
您控制范围之外的第 3 方资源通常从未被认为是稳定的。这就是我们标记版本(例如,dev = always in flux)和合同以尝试接近稳定性的原因。
对于这样的东西 HTML 通常比 class 名称更稳定,但是当 Google 不支持该用例时,永远不会说这个插件是稳定的。
因此,如果确实如此,所陈述的是真实的,CSS class 名称在每个会话中都会更改,可以 select 来自 DOM 基于 HTML 结构或其他未散列的属性。
刚刚查看了 gmail,确实 gb_Df
class 名称是搜索栏。我猜你的帐户已经自动选择了一个 Gmail 版本到另一个生成不同 class 名称哈希的 AB 测试。
在这种情况下会选择placeholder
。所以像:
document.querySelector('[placeholder="Search mail"]')
根据经验(完全是轶事),这个值不太可能改变,目前页面上有一个。可以检查其他相当稳定的属性以确保您拥有正确的属性。请记住,像这样的插件黑客是不稳定的,只能通过使用更稳定的 select 来逐步提高稳定性,因为他们所依赖的基础 (Gmail DOM) 正在以 [=35] 的速度发展=].祝你好运:)