:访问链接而不离开页面

:Visited Links Without Leaving page

本文关键字:离开 不离 访问 链接      更新时间:2023-09-26

我目前正在构建一个 SharePoint 页面。 页面对链接使用锚标记,这些链接不是离开页面,而是触发模式对话框。 这些链接的功能就好像它们是普通链接一样。注意:div 内容是通过 rest 拉入的,这意味着它们是通过 javascript 函数填充的,因此手动编辑 CSS 不会持久。

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

我试图包含通过我的对话框函数打开的链接,以便每个链接都有一个唯一的 URL,但为了避免离开页面,我的函数返回 false,这反过来不会触发 :visited 事件。

有没有办法让我拥有唯一的 URL 来区分非静态 Div 条目和 :visited子类,而无需让锚点离开当前页面?

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

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

如果您打算跨会话保留链接状态,那么请在客户端使用 javascript 的组合,并在服务器端使用任何内容来维护给定用户的状态。

我知道从某种意义上说,如果可以的话,保留所有客户端会更容易,但让我们面对现实吧 - 用户在单击链接时实际上并没有访问任何东西,因此尝试表现得好像他们一样不一定是最合乎逻辑的选择。

@James 沃丁顿: 你的回答很棒!您通过一个小调整解决了这个问题。现在我也可以使用模态框或颜色框的访问链接。

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

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

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

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

快速提琴。