在第三方网络应用中,我想通过jquery自动单击列表中的元素,就像物理鼠标单击一样。
该列表包含玩家数据,这些数据总是不同的,因为它像拍卖一样。元素类的名称始终相同。
选择的命名:class="listFUTItem has-auction-data selected"
未选择的元素被命名为:class="listFUTItem has-auction-data"
列表看起来像这样:
[使用MutationObserver,我已经编辑了一个元素的高度,如果价格低于我的数据库的平均价格,则其附加颜色也将显示为彩色,如下所示:
现在,我想自动选择Elements类与'[style*="background-color"]'
相匹配的交易>
我还尝试将选定的类添加到元素,但是侧面板对此不会有任何影响。trasnferlist HTML看起来像这样:
带有侧面板,我的意思是这个事件:
这就是带有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自动单击列表中的元素,就像物理鼠标单击一样。该列表包含播放器数据,并且这些数据始终是不同的,因为其类似于...
每个鼠标事件都带有属性isTrusted
。如果事件是通过element.click()
方法生成的,则此属性设置为false。因此,您正在谈论的站点可以实施检查,以防止javascript浏览器自动化(.click()
方法)。