Javascript 为页面上的所有内部链接添加特定的结尾

Javascript 为页面上的所有内部链接添加特定的结尾,javascript,Javascript,我需要一些纯JavaScript(不是jQuery!)上的简单代码,这些代码将为页面上的所有内部链接(即,在其href属性中包含网站域的所有链接)添加特定的端点,例如: var pagelinks = document.getElementsByTagName('a'); for(var i in pagelinks) { if(pagelinks.getAttribute('href').indexOf(document.domain) != -1) { pagelinks[i].

我需要一些纯JavaScript(不是jQuery!)上的简单代码,这些代码将为页面上的所有内部链接(即,在其href属性中包含网站域的所有链接)添加特定的端点,例如:

var pagelinks = document.getElementsByTagName('a');
for(var i in pagelinks) {
  if(pagelinks.getAttribute('href').indexOf(document.domain) != -1) {
    pagelinks[i].setAttribute('href',currenthref+'my_end');
  }
}
!!!注意:它不是工作脚本-它只是“类似”我需要的东西

例如,页面上的内部链接包括:

<a href="http//mysite.com/showcase">Showcase</a>
<a href="http//mysite.com/contacts">Contacts</a>
...

...
我需要

<a href="http//mysite.com/showcase?my_end">Showcase</a>
<a href="http//mysite.com/contacts?my_end">Contacts</a>
...

...

如果我理解您的问题,请更正,这就是您想要的:

var domain = 'www.youtube.com';

var pagelinks = document.getElementsByTagName('a');

for (var i = 0; i < pagelinks.length; i++) {

  var current = pagelinks[i].getAttribute('href');

  if (current.indexOf(domain) !== -1) {
    pagelinks[i].setAttribute('href', current + '?my_end');
  }
}
var域='www.youtube.com';
var pagelinks=document.getElementsByTagName('a');
对于(var i=0;i
更新小提琴:


您必须指定要检查
href
属性的域,然后运行一个循环,检查每个锚点的
href
属性,对照指定域进行检查,并更新
href
,如果该域存在于
当前

中,那么上面的问题是什么?是否有效?这只是“类似的东西”。我不知道如何获取变量currenthref以及如何指定条件“if link contains domain”问题出了什么问题?我不认为您的内部链接包含绝对URL,很可能它们都是相对的,因此您应该在脚本中反映这一点。此外,该脚本不起作用,例如,pagelinks中的
var i
就像将数字与成员迭代混淆一样。@stckvrw您能更新您的问题并准确解释您想要什么吗?我已经更新了他的小提琴。它只是缺少原始url的前缀,但是没有jQuery及其
文档。准备好了
,请不要忘记将该脚本放在
之前,否则它将无法工作。@stckvrw更新了我的答案,您现在可以检查吗?是的,它可以工作。但是@wiesion是对的:如果我将光标移动到浏览器的内部链接上,我会看到它的完整URL,但实际上在html中它有相对URL。因此,您能否将代码中的条件替换为条件“如果当前不包含任何域”,即html中没有域的所有链接?