这个问题因为已经涉及到了两个页面,而这两个页面的关系又是链接关系,所以只好,在链接的时候在URL后不光加锚点定位,还要加一个参数,用服务器端语言接收,然后在body的onload事件中的javascript动态的设置焦点的位置。也可以通过截取第二个页面的URL来获得是点了哪个元素的锚点,然后相应的设置焦点的位置

解决方案 »

  1.   

    感谢回复,我按您说的方法,加了个参数,然后在onload中根据参数值设置了焦点,但还是不在输入框上,需要按一下TAB键才能到输入框上。
    在A页上有2个连接,
    ViewGroupCommentsMore.do?groupId=1#add

    ViewGroupCommentsMore.do?groupId=1
    我点第二个进入B后,焦点是在输入框,点第一个进入就不在,是不是设置焦点和锚点有冲突啊?
      

  2.   

    两个页面
    4.htm
    <a href="3.htm#a1">sdfsdf</a>
    <a href="3.htm#a2">sdfsdf</a>3.htm
    <script language=javascript>
    function show()
    {
    var str=document.URL
    var temp=str.substr(str.length-1)
    setTimeout("show2('"+temp+"')",20)

    }
    function show2(temp)
    {
    document.getElementById("text"+temp).focus();
    }
    </script>
    <body onload=show()>
    <a href="#" id="a1">safsdf</a><input name=text1>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <a href="#" id="a2">safsdf</a><input name=text2>
      

  3.   

    设置焦点和锚点有冲突
     锚点会让你的表单元素onblur
      

  4.   

    老大,setTimeout方法在FIREFOX上不能执行吧?我现在在IE下好象也没执行,
    我现在的情况和您给的这个例子是一样的,焦点是定在了a1的位置,而不是输入框上,怎么能点击后直接定位到输入框呢?谢谢!
      

  5.   

    哈,原来是setTimeout设置的时间太短了,我改成500就OK了,十分感谢!