在屏幕上的所有匹配元素上运行href.replace

时间:2013-10-11 19:02:28

标签: javascript google-chrome-extension

现在,我被迫在mouseover上运行我的方法,这实际上将匹配链接的URL的一部分更改为其他内容。如果我只是点击了整个页面上的所有元素,我就会受到巨大的性能影响甚至崩溃。如果我使用鼠标悬停操作,它无法正常使用它可以使用的第三方Chrome扩展程序,但至少是稳定的。

这是我在的地方:

$('body').on('mouseover', 'a', function(e) {
  e.preventDefault();
  if(this.href.match(/example.com/g)){
      this.href = this.href.replace('example.com', 'newexample.org');
  }
});

我想,而不是在鼠标悬停时执行此.replace,而是在屏幕上显示所有example.com链接并进行转换,包括向下滚动时。这样,它将所有链接分解为稍微更易于管理的块。这是我能想到的唯一方法,而不是立即点击所有页面链接并且性能受到影响。

有可能吗?

1 个答案:

答案 0 :(得分:1)

http://www.appelsiini.net/projects/viewport

安装jQuery Viewport扩展程序

然后你可以使用类似于:

的滚动处理程序
$('a:in-viewport[href*="example.com"]').each(function() {
    this.href = this.href.replace('example.com', 'newexample.org');
});