如果直接是在<a href=”main.htm”>超链接的文本</a>的情况下很简单可以实现,只要判断srcElement.href 是否存在即可。但是如果页面内存在超链接的文本不是直接在<a></a>之内,而是嵌套了几层该怎么办呢?
例如
<a href=”main.htm”><font color="#CC0000"><strong>最里层文本</strong>次外层文本</font></a>
这时如果鼠标在“最里层文本“时,使用srcElement.href 就会为空,会认为“最里层文本“没有超链接。但是如果使用鼠标点击它,页面就会跳转。

解决方案 »

  1.   

    <script language="javascript">
    function getLink(obj){
    while(obj!=null && obj.tagName!="A" ){
    obj=obj.parentNode;
    }
    if(obj!=null)alert(obj.href);
    }
    </script><a href="main.htm" onmouseover="getLink(this)"><font color="#CC0000"><strong>最里层文本</strong>次外层文本</font></a>
      

  2.   

    谢谢各位。直接在文本的属性中定义事件是容易实现的。但是如果不通过直接定义,而是通过javascript感知页面中任何一个文本,改怎么办呢?尝试过document.onMouseover,但是这样的话每时每刻都在执行javascript。这样未免太浪费资源了。
    有没有更好的方法呢?例如使用document.body.A::onMouseover之类的。只是这个document.body.A是不存在的。
      

  3.   

    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
     function check(obj){
    alert(obj.href);
     }
    //-->
    </SCRIPT>
    </HEAD><BODY>
    <a href="main.htm" onmouseover=check(this)><font color="#CC0000"><strong>最里层文本</strong>次外层文本</font></a>
    </BODY>
    </HTML>