【问题标题】:a.getAttribute("href") returns img src instead of a hrefa.getAttribute("href") 返回 img src 而不是 href
【发布时间】:2013-10-15 18:34:07
【问题描述】:

这里有一个问题:如果 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>

有人可以解释这种行为并为我们提供提示或解决方案吗? 提前致谢

一月

【问题讨论】:

  • 这个链接没有直接回答你的问题,但它似乎展示了一个很好的方法来做你想做的事情? wptheming.com/2012/01/…
  • 感谢 ak85。我们不允许使用 jQuery。这就是我们用纯 javascript 构建它的原因。

标签: javascript google-analytics hyperlink href tagging


【解决方案1】:

当然是PEBKACID-10-T 错误。

其中一个链接是:

<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"

【讨论】:

    猜你喜欢
    • 2013-01-11
    • 2017-06-04
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多