jQuery click()无法在Google Chrome扩展程序中使用

时间:2015-01-18 20:34:43

标签: javascript jquery google-chrome-extension

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

出于某种原因,下一页链接上的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>

1 个答案:

答案 0 :(得分:5)

DOM Elements have a native .click() method。因此,以下示例有效:

$('a')[0].click() (example)

$('a').get(0).click() (example)

document.querySelector('a').click() (example) - 值得指出jQuery 不是

相关W3 documentation


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

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