在我的 chrome 扩展程序的内容脚本中,我单击某些站点的网页上的某些链接/按钮。为此,我在内容脚本中使用以下代码(我在内容脚本中嵌入了 jQuery):
$(css_selector).trigger("click")
这适用于大多数网站。
但是,在 delta.com、match.com 和 paypal.com 等某些网站上,这种触发元素点击的方式不起作用。在 delta.com 上,当我尝试在内容脚本中触发时抛出以下异常:
Error: An attempt was made to reference a Node in a context where it does not exist.
Error: NotFoundError: DOM Exception 8
奇怪的是,如果我在 delta.com 上打开 javascript 控制台,包含一个 jQuery 并尝试相同的点击触发代码片段,它就可以工作。
在 match.com 和 paypal.com 上,触发在内容脚本中根本不起作用,也没有错误。我什至无法像在 delta.com 上那样通过 javascript 控制台触发“点击”事件。
如果我手动使用鼠标单击,则所有三个站点上的一切都正常。因此,我也尝试使用 mousedown()、mouseup() 来模拟,但这也不起作用。
这似乎是个问题,因为来自这些网站的 javascript 正在劫持和忽略事件。我试图从这些站点读取代码以查看发生了什么,但代码太多了。
有谁知道这里发生了什么以及如何解决它?