JavaScript .click DIV 不起作用,为什么?
JavaScript .click on DIV not working, why?
我正在开发一个应用程序,使用 JavaScript 从 Google Contacts 收集联系人。我需要做的是导航到该站点,单击 DIV 并提取 HTML 源。
问题是,当我手动点击 DIV 时,网站出现了预期的行为。但是当我以编程方式在同一个 DIV 上调用 click
时,没有任何反应。
这里是有问题的 DIV :
<div id=":se" class="tk3N6e-LgbsSe VIpgJd-TzA9Ye-eEGnhe Ycq2Ve tk3N6e-LgbsSe-roVxwc tk3N6e-LgbsSe-n2to0e tk3N6e-LgbsSe-vhaaFf-LK5yu ipG21e" role="button" tabindex="0" data-tooltip="Next" aria-label="Next" style="user-select: none;">
<span class="Fj0vqf" aria-hidden="true"> </span>
<img class="P1rG1b tk3N6e-LgbsSe-RJLb9c" src="images/cleardot.gif" alt="">
</div>
为了完成任务,我正在使用这个 JS :
document.getElementsByClassName('tk3N6e-LgbsSe')[7].click();
虽然 return 上方的选择器是正确的节点,但当我调用 .click()
时,没有任何反应。我在这里错过了什么?
下面是突出显示 DIV 问题的网站图片:
点击绑定到TR元素。
document.querySelectorAll("tr.K9ln3e")[4].click()
然后我看到你点击的不是人,而是箭头。有趣的是我在 gmail 中没有足够的联系人来显示箭头所以我只能假设这会起作用
var dv = document.getElementsByClassName('tk3N6e-LgbsSe')[7]
var clickEvent = new MouseEvent('mousedown', {
view: window,
bubbles: true,
cancelable: true
});
dv.dispatchEvent(clickEvent);
以下对我有用,必须在 mousedown 之后进行 mouseup。
document.getElementsByClassName('tk3N6e-LgbsSe')[7].dispatchEvent(new MouseEvent('mousedown'))
document.getElementsByClassName('tk3N6e-LgbsSe')[7].dispatchEvent(new MouseEvent('mouseup'))
我正在开发一个应用程序,使用 JavaScript 从 Google Contacts 收集联系人。我需要做的是导航到该站点,单击 DIV 并提取 HTML 源。
问题是,当我手动点击 DIV 时,网站出现了预期的行为。但是当我以编程方式在同一个 DIV 上调用 click
时,没有任何反应。
这里是有问题的 DIV :
<div id=":se" class="tk3N6e-LgbsSe VIpgJd-TzA9Ye-eEGnhe Ycq2Ve tk3N6e-LgbsSe-roVxwc tk3N6e-LgbsSe-n2to0e tk3N6e-LgbsSe-vhaaFf-LK5yu ipG21e" role="button" tabindex="0" data-tooltip="Next" aria-label="Next" style="user-select: none;">
<span class="Fj0vqf" aria-hidden="true"> </span>
<img class="P1rG1b tk3N6e-LgbsSe-RJLb9c" src="images/cleardot.gif" alt="">
</div>
为了完成任务,我正在使用这个 JS :
document.getElementsByClassName('tk3N6e-LgbsSe')[7].click();
虽然 return 上方的选择器是正确的节点,但当我调用 .click()
时,没有任何反应。我在这里错过了什么?
下面是突出显示 DIV 问题的网站图片:
点击绑定到TR元素。
document.querySelectorAll("tr.K9ln3e")[4].click()
然后我看到你点击的不是人,而是箭头。有趣的是我在 gmail 中没有足够的联系人来显示箭头所以我只能假设这会起作用
var dv = document.getElementsByClassName('tk3N6e-LgbsSe')[7]
var clickEvent = new MouseEvent('mousedown', {
view: window,
bubbles: true,
cancelable: true
});
dv.dispatchEvent(clickEvent);
以下对我有用,必须在 mousedown 之后进行 mouseup。
document.getElementsByClassName('tk3N6e-LgbsSe')[7].dispatchEvent(new MouseEvent('mousedown'))
document.getElementsByClassName('tk3N6e-LgbsSe')[7].dispatchEvent(new MouseEvent('mouseup'))