无法在浏览器书签中运行javascript循环?

时间:2017-02-15 16:33:34

标签: javascript bookmarklet

我有这个javascript代码,它不以bookmarklet的形式运行。代码的作用是选择所有带有“btn”类的元素,然后使用javascript的click()函数点击它。 代码是:

javascript:(
    function(){
        alert('started');
        var tn = document.getElementsByClassName('btn');
        for (var i=0;i<tn.length; i++) {
            tn[i].click();
        }
        alert('ended');
    }
)
()

我正在测试它 -

<button class="btn" onclick="alert('1')">Click</button>
<button class="btn" onclick="alert('2')">Click</button>
<button class="btn" onclick="alert('3')">Click</button>
<button class="btn" onclick="alert('4')">Click</button>

显示第一个和最后一个警报(陈述和结束),但是甚至没有点击html按钮,因为我看不到警报。 Chrome控制台没有显示任何错误。

在正文末尾粘贴此代码按预期工作:

</script>
    alert('started');
    var tn = document.getElementsByClassName('btn');
    for (var i=0;i<tn.length; i++) {
        tn[i].click();
    }
    alert('ended');
</script>

我相信我的代码中存在一些可怕的错误,例如语法或格式或者一些我自己直到现在都无法弄清楚的愚蠢错误。

注意:我对javascript的经验不多,而且我已经搞乱了2个月,所以请原谅我的愚蠢。

2 个答案:

答案 0 :(得分:1)

检查document.getElementsByClassName(&#39; btn&#39;)是否返回任何元素。可能是您的测试设置有问题。

答案 1 :(得分:1)

你是如何添加书签的? 和我一起一切正常。

刚刚创建了一个包含一些按钮的小页面,您的代码运行正常。

确保正确创建小书签。

  • 在Chrome中,点击书签 - &gt;书签管理器。
  • 您应该会看到一个新标签,其中列出了书签和文件夹。
  • 选择左侧的“书签标签”文件夹。
  • 点击“整理”链接,然后点击下拉菜单中的“添加网页”。
  • 您应该看到两个输入字段。在第一个字段中键入您想要的书签名称(即CBT Launcher)。

希望它有效。