使用javascript单击页面上的所有按钮

使用javascript单击页面上的所有按钮,javascript,jquery,html,Javascript,Jquery,Html,因此,我尝试单击特定网页上的所有按钮。但棘手的是,只有当鼠标悬停在按钮上时,按钮才会显示出来。单击完页面上的所有按钮后,我需要单击下一页按钮。然后再次单击新网页上的所有按钮,依此类推 我实际上有一个工作脚本。但我在javascript中使用setInterval函数,我觉得这是一种很有技巧的方法。这是我的工作脚本: 警报(“请刷新页面以停止”); setInterval(函数(){ var inputs=document.getElementsByClassName('tw-action-bu

因此,我尝试单击特定网页上的所有按钮。但棘手的是,只有当鼠标悬停在按钮上时,按钮才会显示出来。单击完页面上的所有按钮后,我需要单击下一页按钮。然后再次单击新网页上的所有按钮,依此类推

我实际上有一个工作脚本。但我在javascript中使用setInterval函数,我觉得这是一种很有技巧的方法。这是我的工作脚本:

警报(“请刷新页面以停止”);
setInterval(函数(){
var inputs=document.getElementsByClassName('tw-action-button btn btn sm ng隔离范围btn primary');
var name=document.getElementsByClassName('screen-name');

对于(var i=0;i),我可能会考虑使用书签,或者如果项目保证,浏览器扩展。

由于您的代码需要对多个页面应用相同的操作,因此您需要以某种方式访问每个页面的HTML,同时保留对JS代码的访问权

对于bookmarklet,每次单击它时,您都可以处理页面上的所有按钮,然后再单击进入下一页的按钮。此时,您只需再次单击bookmarklet

在扩展的情况下,我会使用一个布尔值,指示每次从所属域访问页面时是否要执行指定的操作。然后,启用后,我只需访问第一个页面,让它单击所有按钮,单击前进的按钮,并允许重复调用脚本

我想bookmarklet将是这两个应用程序中最合适的选择—快速、简单、很少需要注意的边缘情况

我有一个bookmarklet,允许您在页面上创建任何可排序的表。只需导航到页面,单击bookmarklet,然后瞧!单击标题行中的一列,即可根据该行对表进行排序。这是sorttable js库()提供的示例代码

这是书签,让我们看看“URL”:
javascript:(function(){var s=document.createElement('script');s.src='http://kryogenix.org/code/browser/sorttable/sorttable.js“;s.onload=function(){sorttable.init();Array.prototype.slice.call(document.getElementsByTagName('table')).forEach(function(t){sorttable.makeSortable(t);})};document.getElementsByTagName('head')[0]。appendChild(s);}()


在我看来,插入一些代码来执行按钮是微不足道的。点击“其中的一个”。

我可能会考虑使用书签,或者如果项目保证,浏览器扩展。

由于您的代码需要对多个页面应用相同的操作,因此您需要以某种方式访问每个页面的HTML,同时保留对JS代码的访问权

对于bookmarklet,每次单击它时,您都可以处理页面上的所有按钮,然后再单击进入下一页的按钮。此时,您只需再次单击bookmarklet

在扩展的情况下,我会使用一个布尔值,指示每次从所属域访问页面时是否要执行指定的操作。然后,启用后,我只需访问第一个页面,让它单击所有按钮,单击前进的按钮,并允许重复调用脚本

我想bookmarklet将是这两个应用程序中最合适的选择—快速、简单、很少需要注意的边缘情况

我有一个bookmarklet,允许您在页面上创建任何可排序的表。只需导航到页面,单击bookmarklet,然后瞧!单击标题行中的一列,即可根据该行对表进行排序。这是sorttable js库()提供的示例代码

这是书签,让我们看看“URL”:
javascript:(function(){var s=document.createElement('script');s.src='http://kryogenix.org/code/browser/sorttable/sorttable.js“;s.onload=function(){sorttable.init();Array.prototype.slice.call(document.getElementsByTagName('table')).forEach(function(t){sorttable.makeSortable(t);})};document.getElementsByTagName('head')[0]。appendChild(s);}()


在我看来,插入一些代码来执行其中一个按钮的点击似乎很简单。

这很奇怪,它应该可以工作。我尝试生成与您相同的逻辑,它成功地工作了,下面是我的代码:

<!DOCTYPE html>
<HTML>
<HEAD>
</HEAD>
<BODY>
    <button type="button" onclick="doAction()" class="tw-action-button btn btn-sm ng-isolate-scope btn-primary"></button>
    <button type="button" onclick="doAction()" class="tw-action-button btn btn-sm ng-isolate-scope btn-primary"></button>
    <script type="text/javascript">
        function doAction(){
            alert("I'm clicked");
        }
        function clickButtons(){
            var inputs = document.getElementsByClassName("tw-action-button btn btn-sm ng-isolate-scope btn-primary");
            for (var index=0;index < inputs.length; index++){
                inputs[index].click();
            }
        }
        setTimeout(clickButtons,500);
    </script>
</BODY>
</HTML>
要确保成功加载,请尝试用此脚本替换所有javascript脚本,并查看是否会弹出警告消息:

<script type="text/javascript">
    $(document).ready(function(){
        alert("JQuery loaded");
    });
</script>

$(文档).ready(函数(){
警报(“JQuery已加载”);
});

这很奇怪,它应该可以工作。我尝试产生与您相同的逻辑,但它成功地工作了,下面是我的代码:

<!DOCTYPE html>
<HTML>
<HEAD>
</HEAD>
<BODY>
    <button type="button" onclick="doAction()" class="tw-action-button btn btn-sm ng-isolate-scope btn-primary"></button>
    <button type="button" onclick="doAction()" class="tw-action-button btn btn-sm ng-isolate-scope btn-primary"></button>
    <script type="text/javascript">
        function doAction(){
            alert("I'm clicked");
        }
        function clickButtons(){
            var inputs = document.getElementsByClassName("tw-action-button btn btn-sm ng-isolate-scope btn-primary");
            for (var index=0;index < inputs.length; index++){
                inputs[index].click();
            }
        }
        setTimeout(clickButtons,500);
    </script>
</BODY>
</HTML>
要确保成功加载,请尝试用此脚本替换所有javascript脚本,并查看是否会弹出警告消息:

<script type="text/javascript">
    $(document).ready(function(){
        alert("JQuery loaded");
    });
</script>

$(文档).ready(函数(){
警报(“JQuery已加载”);
});

第二个列表有什么不同?引入
setInterval()的原因是什么
首先?很抱歉。不知何故,我复制了相同的代码。现在它已被修复。设置间隔是为了使其连续。因为我无法找到另一种方法在进入下一页时继续单击页面中的脚本如何包含在页面中?页面B加载并替换页面A或ar后,页面A上的脚本无法继续运行您的“页面”实际上是通过Ajax或类似的方式加载的部分页面?它是一个扩展,是的。工作扩展(带有setInterval的版本)实际上运行得很好第二个列表有什么不同?引入
setInterval()的原因是什么
首先?很抱歉。不知何故,我复制了相同的代码。现在它被修复了。setInterval就在那里
<script type="text/javascript">
    $(document).ready(function(){
        alert("JQuery loaded");
    });
</script>