通过javascript转到锚点

时间:2009-11-26 16:57:27

标签: javascript sharepoint anchor

我正在尝试在JavaScript中创建一个将用户带到HTML锚点的函数。唯一的问题是,我正在尝试在.aspx页面中的SharePoint中创建它......

我有一个隐藏的表,我用JavaScript函数取消隐藏,但表位于页面的底部,所以我在表旁边添加了一个锚点并试图超链接到它...但它不起作用......这是我的代码:

function GoTo() {
    window.location.hash="change"
}

<a name="change"></a>

有什么想法吗?

5 个答案:

答案 0 :(得分:0)

将您的window.location.hash = "change"更改为window.location.href = "#change" 我已经测试了这个,这适用于IE8,Chrome,FF,Safari。

可能有另一种方式:

function scrollToAnchor(anchorName){
  //set the hash so people can bookmark
  window.location.hash = anchorName;
  //scroll the anchor into view
  document.getElementsByName(anchorName)[0].scrollIntoView(true);
}

如果哈希方法不起作用,请尝试将窗口设置为小尺寸,以便跳转到哈希标记

答案 1 :(得分:0)

我刚尝试过,它对我有用。尝试将#change添加到地址栏,看看它是否符合您的预期。

答案 2 :(得分:0)

JD-Daz -

根据您的简要规范,我创建了这个简单的测试页面,它似乎有效。也许您应该将自己的页面复制并粘贴到新页面中,然后将其删除直至其工作:

<!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>
    <title></title>
    <script language="javascript">
        function GoTo() {
            var myTable = document.getElementById("myTable");
            myTable.style.visibility = "visible";
            window.location.hash = "change";
        }

    </script>
</head>
<body>

<a href="javascript:GoTo();">Click Here</a><br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
19<br />
20<br />
21<br />
22<br />
23<br />
24<br />
25<br />
26<br />
27<br />
28<br />
29<br />
30<br />
<table id="myTable" border="1" width="500" style="visibility:hidden" backcolor="black">
    <tr>
        <td>Shown</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>
    </tr>
    <tr>
        <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>
    </tr>
    <tr>
        <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>
    </tr>
    <tr>
        <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>
    </tr>
</table>
<a name="change"></a>
</body>
</html>

答案 3 :(得分:0)

要解决您的问题,请转到按钮

<input type="button" value="Request For Change" onclick="GoTo(); return false;">

问题是input type="button"会在点击时提交页面。因此,当您单击它时,它会向下滚动到您的锚元素,但随后会重新加载页面,从而无法实现目的。您需要将return false添加到onclick处理程序的末尾以禁止默认操作。

此外,onclick应该全部为小写。

答案 4 :(得分:0)

我认为你想使用<a href="#change" onclick="unhide table code here">link text</a>