我们在这里遇到了一个问题:如果href不包含特定域,这个小脚本应该编辑链接的href属性。不幸的是,当<a>
元素包含<img>
时,JS会查找图片的src
属性,而不是a href
。
这是为什么?我只是在<a>
上使用getAttribute(“href”),而不是在<img>
上使用?
如果<a>
元素包含普通文本而不是<img>
,则此方法有效。
这是JS:
var domains = ["mysite.com", "mysite2.com"];
var elements = document.getElementsByTagName("a");
for (var i = 0; i < elements.length ; i++)
{
var notFound = 0;
for (var k = 0; k < domains.length; k++) //iterate over all domains defined by user
{
var found = false;
(elements[i].getAttribute("href").search(domains[k]) != -1) ? found = true : found = false;
if (!found) //not found
{
notFound++;
}
}
if (notFound == domains.length) //link is outbound:
{
//Set link with outbound tracking parameter
}
}
这是HTML:
<a href="http://facebook.com/38293729">
<img width="100%" height="100%" src="http://mysite.com/images/fb_button.png"></img>
</a>
有人可以解释这种行为并向我们提供tipp或解决方案吗? 提前致谢
扬
答案 0 :(得分:0)
其中一个链接是:
<a href="http://facebook.com/38293729/?utm_source=mysite.com&utm_medium=socialbutton&utm_campaign=socialbutton">
<img src="http://mysite.com/facebookbutton.png"></img>
</a>
与URL参数匹配的位置:
a href =“http://facebook.com/38293729/?utm_source=mysite.com&utm_medium=socialbutton&utm_campaign=socialbutton”