Jquery点击列表中的元素

问题描述 投票:0回答:1

在第三方网络应用中,我想通过jquery自动单击列表中的元素,就像物理鼠标单击一样。

该列表包含玩家数据,这些数据总是不同的,因为它像拍卖一样。元素类的名称始终相同。

选择的命名:class="listFUTItem has-auction-data selected"

未选择的元素被命名为:class="listFUTItem has-auction-data"

列表看起来像这样:

Transferlist click for full view

[使用MutationObserver,我已经编辑了一个元素的高度,如果价格低于我的数据库的平均价格,则其附加颜色也将显示为彩色,如下所示:

Deal click for full view

现在,我想自动选择Elements类与'[style*="background-color"]'相匹配的交易>

我还尝试将选定的类添加到元素,但是侧面板对此不会有任何影响。trasnferlist HTML看起来像这样:

HTML view

带有侧面板,我的意思是这个事件:

gif of UI

这就是带有Jquery的MutationObserver代码:

var observeTransferList = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
    mutation.addedNodes.forEach(function (node) {
        if (node.nodeType === 1 && node.matches(".has-auction-data")) {
            $(node).css("height", "37");
            $(node).removeClass('selected');

            chrome.storage.sync.get(function (items) {
                platform = items.platform;
                percentage = items.percentage;
                var playerData = getPlayerData(node, platform, percentage);


                $(node).append(playerData);
                if (playerData.colorPicked) {
                    $(node).css("backgroundColor", playerData.colorPicked); //can be "" by default, or green, yellow etc
                    //$(node).css("height", "37");
                    var price = Math.trunc(
                        parseInt(playerData.binValue.replace(/,/g, "")) / 0.949
                    );
                }


   // -------- CODE HERE -----------//
                if (node.matches('[style*="background-color"]')) { //works
                    $(node).css("height", "60"); //works
                    $(node).addClass('selected')//works
                    //$(node).click('selected'); // not working
                    //$(node).click(); // not working 
                   //$(node).trigger('click'); //notworking
                   //$(node).trigger('click', ['selected']); // not working even when adding a selected class after page load and remove old selected

                }

我尝试了类似的解决方案:

Difference between .click() and actually clicking a button? (javascript/jQuery)

Trigger a click event on an inner element

executing a click function without the user clicking?

以某种方式,我需要触发listelement的事件,该事件会更改侧面板,但idk如何。虚拟点击必须以某种方式触发事件绑定到真正的鼠标点击。但是我错过了什么?

[在第三方网络应用中,我想通过jquery自动单击列表中的元素,就像物理鼠标单击一样。该列表包含播放器数据,并且这些数据始终是不同的,因为其类似于...

javascript jquery html css
1个回答
0
投票

每个鼠标事件都带有属性isTrusted。如果事件是通过element.click()方法生成的,则此属性设置为false。因此,您正在谈论的站点可以实施检查,以防止javascript浏览器自动化(.click()方法)。

© www.soinside.com 2019 - 2024. All rights reserved.