:访问链接不离开页面

时间:2015-01-29 18:57:35

标签: javascript css anchor

我正在构建一个Sharepoint页面。该页面使用锚标记作为链接,而不是导航离开页面,触发模式对话框。这些就像它们是普通链接一样运行。 注意: div内容通过rest拉入,意味着它们通过javascript函数填充,因此手动编辑css将不会持久。

我正在使用锚标签,因为我想访问:visited标签,以便用户知道他们之前查看了哪些链接。这里的问题是我一直在使用 href ='#'的占位符标记。这不会给我预期的结果,因为当每个链接都有 href ='#'时,访问一个链接会更改页面上所有链接的颜色。

我试图通过我的对话框功能包含正在打开的链接,以便每个链接都有一个唯一的URL,但是为了避免导航离开页面,我的函数返回false,这反过来又不会触发< strong>:访问事件。

有没有办法让我有唯一的网址,可以区分非静态 Div条目与:已访问子类,而不会让锚点离开当前页面?

<a class="hyper" href="myLinkHere" onclick="return myDialog(//start dialog then return false);">This is a Title</a>

3 个答案:

答案 0 :(得分:2)

如果您打算在一个会话中保留链接状态 ,那么只需在javascript中管理它。在返回false之前,请更改CSS类或执行您计划更改链接外观的任何其他内容。

如果您的目的是保持链接状态跨会话,那么在客户端使用javascript的组合以及在服务器端使用的任何内容,以维护给定用户的状态

我知道在某种意义上,如果可以的话,将它保留在所有客户端会更容易,但让我们面对它 - 用户在点击链接时实际上并没有访问任何内容,因此,尝试采取行动并不一定是最合乎逻辑的选择。

答案 1 :(得分:1)

@James Waddington:你的答案非常棒!!你通过一个小小的调整解决了这个问题。现在我也可以使用模块框或彩盒的访问链接。

您可以在href中使用#something指定要链接到的内部页面ID。如果您指定了不在页面上的ID,您将拥有一个唯一ID,用于将链接标记为已访问,而不会实际带您到任何地方。 e.g ..

<a href="#test">Test</a>
<a href="#test2">Test</a>
<a href="#test3">Test</a>
<a href="#test4">Test</a>

答案 2 :(得分:0)

您可以在href中使用#something指定要链接到的内部页面ID。如果您指定了不在页面上的ID,您将拥有一个唯一ID,用于将链接标记为已访问,而不会实际带您到任何地方。 e.g ..

<a href="#test">Test</a>
<a href="#test2">Test</a>
<a href="#test3">Test</a>
<a href="#test4">Test</a>

Quick Fiddle