我想知道一个链接是跳转到页内锚点
还是打开一个新的链接不要说判断#号,链接中也可以带#

解决方案 »

  1.   

    页内锚点 是通过 name属性 来的呀
    页面跳转 是按照 href属性来的
     <a href="#目标a标签name" id="a"></a>
    <a id="b" name="目标a标签name"  href="#">
    点id为a则页面焦点到 b标签这里。
      

  2.   

    页内锚点 不需要指定目标地址 直接#name;
    或者 url#name----url是本地址?
      

  3.   

    如:
    http://lengxiaohua.net/
    页面里面有
    http://lengxiaohua.net/2011/05/03/yang-chen-gang/#more-5722它就是一个链接而本页 TOP 就是一个锚点!
      

  4.   

    http://lengxiaohua.net/
    页面里面有
    http://lengxiaohua.net/2011/05/03/yang-chen-gang/#more-5722"http://lengxiaohua.net/2011/05/03/yang-chen-gang/#more-5722"里面#不在第一个字符,所以是链接本页 TOP 的href第一个字符是#,故是锚点
      

  5.   

    噢。理解错了。
    看成在本页判断了。那样的话有#more-5722这种还真不好弄。4、9楼++
      

  6.   

    我用到的方法是到页面里面查找有没有锚点,然后再判断。
    这样效率太低~~有木有高效的方法?我知道ASP中是有的,我只是想要一个JS的解决方案,因为我要跨平台。
      

  7.   

    高分求解!!
    加个分还要利用csdn的bug~~哎!
      

  8.   

    只要href不是#开头的都似页间跳转吧
      

  9.   

    1.可以试一下用document.referrer
    2.不知道是不是可以这样,做个标记,初始化是0,页面加载完是1, 根据它的值应该能判断是不是页内的描点了吧.
      

  10.   

    很多锚点为了浏览器兼容,#前面很多是加上本身的站点网址的那就还加个判断,即indexOf(href属性,document.location+"#")==0
      

  11.   

    多吃点海带,能发现碘味精.dll?cba=123......
      

  12.   

    还等着楼主再加分呢,哈哈。
    既然不加了,只好上答案了。呵呵
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>锚点示例</title>
    <script>
    window.onload=function(){
      var arr=document.getElementsByTagName('A');
      var s='',s1='';
      var thisURL=location;
      for(var i=0;i<arr.length;i++){
       s=arr[i].href;
        if(s!=''){
         if(s.indexOf(thisURL)==-1){
           arr[i].onmouseover=function(){alert('这是跳转外页面')}
         }
         else{
           arr[i].onmouseover=function(){alert('这是页内锚点跳转')}
         }
          s1+=s+'<br />'
        }    
      }
      //这里是帖子主题判断依据
      document.getElementById('info').innerHTML=s1;
    }
    </script>
    </head><body>
    <div id=info style='border:2px solid red;'></div>
    <br />
    <a id="A0"></a>
    <a href="#A1">锚点1</a>
    <a href="#A2">锚点2</a>
    <br /><br /><br />
    <div style="height:700px; background:#fff">
      <a href="aa.html">跳转到<b>aa.html</b>页面</a><br /><br />
      <a href="aa.html#abc">跳转到<b>aa.html</b>页面的锚点#abc</a><br /><br />  
      <a href="#" onclick="location.href='aa.html';">JS方式跳转到aa.html页面</a><br /><br />
      <a href="#" onclick="location='aa.html#abc';">JS方式跳转到<b>aa.html</b>页面的锚点#abc</a><br /><br />
      <a href="b#b.html#abc">跳转到<b>b#b.html</b>页面</a><br /><br />
    </div><a id="A1" id="A1"></a>这里是锚点1&nbsp;&nbsp;&nbsp;<a href="#A0">返回顶部</a>
    <div style="height:700px; background:blue"></div>
    <a id="A2" id="A2"></a>这里是锚点2&nbsp;&nbsp;&nbsp;<a href="#A0">返回顶部</a>
    <div style="height:700px; background:red"></div>
    </body>
    </html> 
      

  13.   

    对于不规范的链接、服务端重定向的链接,根本不能用一个统一个规则进行预分析;大概只能在 DocumentComplete 事件中事后分析了。
      

  14.   

    说明:
    <a href="#" onclick="location.href='aa.html';">JS方式跳转到aa.html页面</a><br /><br />
      <a href="#" onclick="location='aa.html#abc';">JS方式跳转到<b>aa.html</b>页面的锚点#abc</a><br /><br />
    这样的情况,我没做进一步的判断,也给判定为这是“页内锚点跳转”了。你可以自己加工一下,就是:
    检查arr[i].href,发现仅仅是“#”时,判断它有没有其他事件;没有就是本地锚点跳转;有其他事件再判断函数体代码,分析其中有没有跳转的代码。我嫌麻烦,就不做了。思路就是这样
      

  15.   

    思路明白了,就是获得所有的<a>锚点,然后比对。
    我也是这么想的。我现在是用正则查找页面中有没有那个 #后面的字串 为name 的锚点,然后判断看来没有简单的方法~~
    我再等等~~
    没有的话,我们俩平分了分吧~~
      

  16.   

    1、用于手机平台有些麻烦。因为很多手机都把JS屏蔽了.....2、补充
    <script>
    window.onload=function(){
      var arr=document.getElementsByTagName('A');
      var s='',s1='',t='';
      var thisURL=location;
      for(var i=0;i<arr.length;i++){
       s=arr[i].href;
        if(s!=''){
         if(s.indexOf(thisURL)==-1){
           arr[i].onmouseover=function(){alert('这是跳转外页面')}
         }
         else{
         if(s==thisURL+'#'){
         t=arr[i].getAttribute('onclick');
           alert(t.toString())
           //你在这里判断是否有JS跳转到其他页面的代码
           if(有){arr[i].onmouseover=function(){alert('这是跳转外页面')}}
           else{arr[i].onmouseover=function(){alert('这是页内锚点跳转')}}

         }
         else{
             arr[i].onmouseover=function(){alert('这是页内锚点跳转')}
           }
         }
          s1+=s+'<br />'
        }    
      }
      //这里是帖子主题判断依据
      document.getElementById('info').innerHTML=s1;
    }
    </script>
      

  17.   

    网页占内存很大,而且还特别容易死机~~苹果的cocoa 库有支持js的接口,可用,但不是很可靠。很多元素支持的不是很好。
    fck 插件就很难解决~~抑郁啊
      

  18.   

    大脖子啥意思?不是有个New Blank啥的么?
      

  19.   

    csdn的移动平台就是摆设!!这么多分都没有一个回复的!
      

  20.   

    New Blank 什么东东??
      

  21.   

    俺只知道target="_blank"
    CSDN早就完了
    前一段时间大乌龟都被气走了
    连水版的大版也有几天不露面了
      

  22.   

    不懂装顶……
    大脖子又把它移动到vb版来了,昨天还在JV版
      

  23.   

    还是这里热闹~~
    可惜不能多加 ~分
    dbcontrols借我两个星星用用~~
      

  24.   

    谢谢兄弟,收到270(被CSDN揩油30分,你亏了,哈)
    不过忘记说了,我要可用分没用啊。技术分你也可以给别人,我就是来玩的,分不分的没所谓,呵呵
      

  25.   

    你的头像身价几何?
    哈哈~~
    虚~~~不许瞎讲,等dbcontrols的公司上市了,我们都去蹭分红!!
    悄悄的⋯⋯
      

  26.   

    页内跳转肯定是用了标签吧?BOOKMARK
      

  27.   

    靠,谁不是穷人啊引用 48 楼 ybh37 的回复:
    引用 43 楼 dbcontrols 的回复:求可用分引用 41 楼 ybh37 的回复:
    引用 37 楼 toury 的回复:引用 29 楼 ybh37 的回复:csdn的移动平台就是摆设!!这么多分都没有一个回复的!你到微软站点找找开发包可以分已经达到账号!望查收~你拿钱……
      

  28.   

    javascript:alert(document.referrer)
      

  29.   

    大家都去押宝吧 有的是fen
      

  30.   

    本质上都是链接,估计浏览器也是在你点击的时候开始分析处理的,它不会专门设置个属性标记是页面外还是页面间的,你能做的就是纯字符串分析href,规律就是页面间的话href里会包含在当前url中,页面外的话具体的http文件绝对地址是不同的。估计没有比toury更简便的代码了。
      

  31.   

    我现在的方法是 用正则查找页面中有没有那个 #后面的字串 为name 的锚点,然后判断页内跳转还是页间跳转。
    我查一下,看看能否获得 http文件绝对地址 的一个映射类的值,比方说Hash值。
      

  32.   

    表达不清~
    看看能否获得代表 http文件绝对地址 的值,比方说Hash值。
      

  33.   

    下载一个Fiddler2跟踪一下,应该能找到规律的,另外把各种打开新页面的办法都整理一下,然后自己写相关的规则,把能打开新页面的办法都列入规则中一一排除,应该就没问题
    http://www.cnblogs.com/jimchxi/archive/2009/03/11/1408483.html
      

  34.   

    这个纯粹的正则分析代码是没法取得的,得结合dhtml访问。document.url  location.herf