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

Javascript 在屏幕上的所有匹配元素上运行href.replace,javascript,google-chrome-extension,Javascript,Google Chrome Extension,现在,我被迫在mouseover上运行我的方法,这实质上改变了匹配到其他链接的URL的一部分。如果我只是点击整个页面上的所有元素,我会得到巨大的性能打击,甚至崩溃。如果我使用mouseover操作,它在第三方Chrome扩展中无法正常工作,但至少是稳定的 这就是我所处的位置: $('body').on('mouseover', 'a', function(e) { e.preventDefault(); if(this.href.match(/example.com/g)){

现在,我被迫在mouseover上运行我的方法,这实质上改变了匹配到其他链接的URL的一部分。如果我只是点击整个页面上的所有元素,我会得到巨大的性能打击,甚至崩溃。如果我使用mouseover操作,它在第三方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');
  }
});
我希望,不要在鼠标上方执行此
。替换
,而是将所有
example.com
链接在屏幕上转换,包括向下滚动。通过这种方式,它将所有链接分解为更易于管理的块。这是我唯一能想到的方法,不用一次点击所有页面链接,也不用承受性能上的打击


可以吗?

从安装jQuery视口扩展

然后,您可以使用滚动处理程序执行以下操作:

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

扩展jQuery选择器以添加
:在viewport
中,我只是将其作为附加jQuery文件添加到manifest.json中,然后只需找出语法即可?是的,我想是这样(但我还没有编写扩展)。
未捕获错误:语法错误,无法识别的表达式:不支持的pseudo:in viewport
我不知道如何正确连接两个Jquery插件,只知道像原始Jquery一样将它们添加到清单中。很抱歉,我无法帮助您完成这一部分,我不知道有关配置扩展的任何信息。请注意,是否有其他方法可以手动执行与以下完全相同的操作:在视口中,但在同一文件中?视口扩展名非常短。只需将其复制到源文件中即可。一切正常-添加了一个滚动侦听器,我们设置为:D