我正在尝试创建一个在不同网页上执行简单功能的书签。这个想法是,它可以轻松地找到位置(在书签栏上)并在给定页面上执行“标准功能”。除了寻找超链接或提交按钮外,我还可以依靠小书签来完成其职责。
作为不使用JavaScript进行编码的人,我很难使小书签在多个项目/页面上工作。我首先成功地使用了getElementById函数
javascript:(function () {
var i = document.getElementById("contactSeller").click()
})()
在另一页上,有一个ID为“ sndBtn”的按钮。但是,向具有第二个ID的代码添加另一个click()函数不起作用。
javascript:(function () {
var i = document.getElementById("contactSeller").click();
var m = document.getElementById("sndBtn").click()
})()
据我所知,因为getElementById在页面上只能工作一次。 (删除第一个功能使第二个功能起作用)。其他用户建议使用CSS或jQuery递归函数,但我运气不佳,无法将它们用作书签。
有人可以帮助构建一个通过点击列表运行的简单功能吗?具有跟随超链接,提交表单和单击按钮的能力将是很好的,即,它不仅是相同功能的递归脚本。每个页面上的每个元素似乎都有唯一的ID。
链接 GetElementByID - Multiple IDs
https://gist.github.com/aseemk/5000668
https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll
答案 0 :(得分:0)
您可以致电.click()
的次数没有限制。当元素不存在时,您可能会遇到导致脚本终止的异常。您不能在空对象上调用javascript:(function () {
var i = document.getElementById("contactSeller");
if(i){i.click();}
var m = document.getElementById("sndBtn")
if(m){m.click();}
})()
。
这将在单击之前检查元素的存在:
{{1}}
答案 1 :(得分:0)
看了一个例子,它很好用了。
我认为@Rich Moss写的是正确的,document.getElementById("contactSeller")
是未定义的,或者click函数得到了例外,从而阻止了代码继续。
function c(v){
console.log(v)
}
document.getElementById("btn1").click()
document.getElementById("btn2").click()
<input type="button" onclick="c(1)" value="btn1" id="btn1" />
<input type="button" onclick="c(2)" value="btn2" id="btn2" />