2015-04-04 44 views
0

此鏈接管理器有一個缺陷,使用event.target來搜索錨點標記,但它跳過錨點標記包裝IMG,SPAN,DIV等我不明白我如何可以讓它包含錨標籤包裝的任何對象。任何人都有想法?JavaScript的事件與錨點的問題

這裏是我的演示頁演示該問題:http://tinyurl.com/nxc7bpx

這是原來的插件:

/* Exit Link Manager v0.5 */ 
function getLinks() { 
    for (var i = 0; i < document.links.length; i++) { 
     lnk = document.links[i]; 
     if (lnk.addEventListener) { 
      lnk.addEventListener('click', sendExitConversion, false) 
     } else if (lnk.attachEvent) { 
      lnk.attachEvent('onclick', sendExitConversion) 
     } 
    } 
} 

function setBodyOnload() { 
    if (window.addEventListener) { 
     window.addEventListener('load', getLinks, false) 
    } else if (window.attachEvent) { 
     window.attachEvent('onload', getLinks) 
    } 
} 
setBodyOnload(); 

function sendExitConversion(event) { 
    var obj; 
    event = event ? event : window.event; 
    var s = s_gi(s_account); 
    if (event.target) { 
     obj = event.target 
    } else if (event.srcElement) { 
     obj = event.srcElement 
    } 
    if (obj.href) { 
     var exitLinks = s.linkInternalFilters; 
     var exitArray = exitLinks.split(','); 
     if (s.trackExternalLinks == false) { 
      isExitLink = true; 
      for (i = 0; i < exitArray.length; i++) { 
       if (obj.href.toLowerCase().indexOf(exitArray[i].toLowerCase()) > -1) { 
        isExitLink = false 
       } 
      } 
      exitURLStart = obj.href.substring(obj.href.indexOf('//') + 2, obj.href.length); 
      if (exitURLStart.indexOf('/') > -1) { 
       exitURLEnd = exitURLStart.indexOf('/') 
      } else { 
       exitURLEnd = exitURLStart.length 
      } 
      var exitDomain = exitURLStart.substring(0, exitURLEnd); 
      if (isExitLink) { 

       /* SET YOUR EXIT LINK VARIABLES AND EVENTS HERE */ 
       s.linkTrackVars = ""; 
       s.linkTrackEvents = ""; 
       s.events = ""; 
       s.tl(this, 'e', exitDomain); 
      } 
     } 
    } 
} 

回答

0

所以,當我改變obj = event.targetobj = currentTarget我現在能夠檢索鏈接數據。