使用javascript添加到某个类的hrefs

时间:2017-04-11 09:29:43

标签: javascript arrays google-chrome-extension

这是我的代码

function pagechangefl() {
  var list1 = document.getElementsByClassName("fl");
  for (var k = 0; k < list1.length; k++) {
    var str1 = list1[k].href;
    var str2 = "&num=100";
    if (!(str1.endsWith("&num=100"))) {
      list1[k].href = str1 + str2;
    }
  }
}

function pagechangepn() {
  var list2 = document.getElementsByClassName("pn");
  for (var i = 0; i < list2.length; i++) {
    var str3 = list2[i].href;
    var str4 = "&num=100";
    if (!(str3.endsWith("&num=100"))) {
      list2[i].href = str3 + str4;
    }
  }
}

var t1 = setInterval(pagechangefl, 1000);
var t2 = setInterval(pagechangepn, 1000);

当前代码的问题是我不想使用计时器我希望每次使用#links示例更新页面时都运行这些函数。即使使用计时器,pagechangefl函数也不会因某种原因添加添加内容。

this tutorial

VS

https://www.google.com/search?q=test&tbs=cdr:1,cd_min:0000&start=000&tbm=bks&num=100

2 个答案:

答案 0 :(得分:0)

无法从代码中提出当前的架构。

但是一旦触发了更新页面的功能,你就可以调用这两个函数。

假设有一个触发更新的功能

function updatePage(){
 // Rest of code
 // on update complete call the other two function
 pagechangefl()
 pagechangepn
}

答案 1 :(得分:0)

你是说这样的意思吗?

window.addEventListener('hashchange', function(){
    document.querySelectorAll('.fn[href], .pn[href]')
        .forEach(function(node){
            var url = new URL(node.href), 
                hash = new URLSearchParams(url.hash.replace(/^#/, ""));

            hash.searchParams.set('num', 100);
            url.hash = hash;
            node.href = url;
        });
});