jQuery click() 在 Google Chrome 扩展中不起作用

jQuery click() not working in Google Chrome extension

本文关键字:Chrome 扩展 不起作用 Google click jQuery      更新时间:2023-09-26

我正在编写一个插件,以便在亚马逊卖家中心仪表板中为自己处理有用的信息。

出于某种原因,对下一页链接的click()调用不会从上下文脚本内部触发。

代码正在运行,但这不执行任何操作:

var $next = $('a:contains(Next)');
$next.click();

但奇怪的是,这有效

var $next = $('a:contains(Next)');
window.location = $next.attr("href");

链接的 HTML 示例为:

<td align="right" valign="middle" width="60%" class="tiny">
    <nobr>&nbsp;&nbsp;&nbsp;<a href="https://sellercentral-europe.amazon.com/gp/feedback-manager/view-all-feedback.html?ie=UTF8&amp;currentPage=2&amp;dateRange=&amp;descendingOrder=1&amp;pageSize=50&amp;sortType=Date">Next</a>
    </nobr>
</td>

在 Chrome 扩展程序中运行点击事件是否有任何限制?在另一个页面上按下按钮就可以了(尽管该按钮的结构不同 - 见下文):

<a class="buttonImage" name="View all your feedback" href="https://sellercentral-europe.amazon.com/gp/feedback-manager/view-all-feedback.html/ref=fb_fbmgr_vwallfb?ie=UTF8&amp;dateRange=&amp;descendingOrder=1&amp;sortType=Date">
    <span class="awesomeButton buttonLarge primaryLargeButton inner_button">
        <span class="button_label">View all your feedback</span>
    </span>
</a>

DOM Elements有一个原生的.click()方法。因此,以下示例有效:

$('a')[0].click()(示例)

$('a').get(0).click()(示例)

document.querySelector('a').click()(示例) - 值得指出的是,jQuery不是必需的

相关的 W3 文档。


这导致我假设在选择元素集合(jQuery 对象)时无法以编程方式更改 URL。我想你需要选择单独的 DOM 元素。因此,以下方法应该有效:

var $next = $('a:contains(Next)');
$next[0].click();