运行 javascript 不能在浏览器书签中循环吗?

can't run javascript loop in browser bookmarklet?

我有这个 javascript 代码,它不是 运行 小书签形式。代码的作用是选择所有带有 class "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 个月所以请原谅我的愚蠢。

检查是否有 document.getElementsByClassName('btn') returns 任何元素。可能是您的测试设置有问题。

您是如何添加小书签的? 在我这里一切正常。

刚刚创建了一个带有一些按钮的小页面,您的代码工作正常。

确保您正确创建了小书签。

  • 在 Chrome 中,单击书签->书签管理器。
  • 您应该会看到一个新选项卡,其中列出了书签和文件夹。
  • Select 左侧的 "Bookmarks Tab" 文件夹。
  • 单击 "Organize" link,然后单击下拉列表中的 "Add Page"。
  • 您应该会看到两个输入字段。在第一个字段中输入您想要的书签名称(即 CBT Launcher)。

希望有用。