尝试在元素出现时执行单击功能

Trying to perform a click function when an element appears

本文关键字:执行 单击 功能 元素      更新时间:2023-09-26

基本上,我在一个网站上工作,该网站在表单完成后会显示一个提交按钮。我想要的是创建一个功能,每当提交按钮出现时,它都会自动点击(没有选择倒退和审查工作,所以我甚至不知道为什么会出现)。我已经在chrome上使用了一个带有Tampermonkey的用户脚本,我想添加最后一部分来加快速度。

因此,这个网站上html中特定提交按钮的代码是:

<form style="width:auto;" id="siteform" action="https://www.example.com" method="post">
        <!--
        <input type="hidden" id="numTags" name="numTags" value="< %= numTags %>" />
        <input type="hidden" id="numMaps" name="numMaps" value="< %= current_map_count %>" />
        <input type="hidden" id="numQuestions" name="numQuestions" value="< %= current_question_count %>" />
        <input type="hidden" id="challenge" name="challenge" value="< %= challenge %>" />
        -->
        <input type="hidden" id="assignmentId" name="assignmentId" value="3WSELTNVR4VI8OKXJT4767WDMN3ATT">
        <input type="hidden" id="hitId" name="hitId" value="3H1C3QRA01C1P014N961OWQHFGQCEF">
        <input type="hidden" id="workerId" name="workerId" value="id1">
        <button type="submit">Finished! Click here to submit HIT</button>
    </form>

我能找到的最接近我需要的东西是使用功能

if ($(#'element').is(':visible')){}

虽然这在理论上是我想要的,但它不起作用。例如,我试过

if ($("button[type='submit']").is(':visible')){
     $("button[type='submit']").click();

}

运气不好。我对javascript和jQuery还很陌生,所以我的搜索可能没有出现任何结果,因为我还在学习行话。有什么建议吗?感谢

document.getElementById('siteform').submit();

无需处理点击按钮的问题,只需使用提交功能即可。

我认为您的问题不是将js代码包装在Jquery的document.ready中,如下所示:

$(document).ready(function(){
   if ($("button[type='submit']").is(':visible')){ 
     $("button[type='submit']").click();
   }
});

$(function(){
   if($("button[type='submit']").is(':visible')){ 
        $("button[type='submit']").click();
   }
});

JSFiddle

不要忘记将JQuery库添加到您的html页面:

<head>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>

如果你朝着正确的方向前进,让我们看看直接提交表单是否有效,而不是尝试点击按钮。。。

$(document).ready(function(){
    var $form = $('#siteform');
    if ($form.find('button[type="submit"]').is(':visible')) {
        $form.trigger('submit');
    }
});