【问题标题】:JavaScript Bookmarklet: Infinite loop to perform a function, then on page load, execute the function againJavaScript Bookmarklet:执行一个函数的无限循环,然后在页面加载时再次执行该函数
【发布时间】:2011-11-27 17:54:01
【问题描述】:

我将如何将其作为书签实现?

这是我拥有的功能:

javascript: function tr_f() { 
  var followlinks = []; 
  for (var i=0; i < document.links.length; i++) {
        if (document.links[i].getAttribute("class")=="follow"){
              followlinks[followlinks.length] = document.links[i];
        }
  } 
  for (var i=0; i<followlinks.length; i++) {
        var rrr=followlinks[i].onclick();
  } 
} tr_f();

我想修改此代码以执行该功能,然后刷新页面,等待几秒钟,然后再次执行该功能 - 在无限循环中。

另外,实际上更好的方法是在单击小书签后刷新页面,在页面加载时执行该功能,然后再执行一次。

【问题讨论】:

    标签: javascript function loops bookmarklet infinite


    【解决方案1】:

    您不能将其作为小书签执行,页面重新加载然后再次加载后所有代码都会丢失,但您的小书签不是页面的一部分,因此您必须再次手动执行它,这意味着您又回到了原点。

    但是,你到底想做什么?您可以使用localStorage,这样您的脚本就不必在每次运行时都从头开始。

    【讨论】:

    • 我正在尝试自动单击网页上按钮的所有实例 - 在本例中为“关注”按钮。有问题的网页在页面重新加载时获取新的未点击实例。我将如何实现 localStorage?
    • @Schwing 如果您必须刷新页面以获取更新,那么 localStorage 没有帮助,您需要从脚本中获取更新(使用 AJAX、JSONP 或其他任何方式),这样您不必重新加载即可获得它们。或者你可以只使用greasemonkey,它会在每次页面加载时自动执行书签
    • 看起来有点复杂。我不确定我是否能够获取该信息 - 公众无法完全访问它(没有 API)
    • @Schwing,那么如果您使用的是 firefox 或 chrome,greasemonkey 是一个扩展,可以轻松地让您执行此操作。
    • 我正在考虑为此目的创建一个浏览器扩展,而不是书签。我宁愿独立实现这个 - 即我自己的扩展,而不需要greasemonkey
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    相关资源
    最近更新 更多