【发布时间】:2012-10-29 10:04:03
【问题描述】:
我目前正在构建一个网站,其中包含许多指向我网站不同部分的链接(也称为导航)。让我们将这些链接及其对应的页面称为 link1、page1、link2、page2、link3、page3 等。
它们的通用代码是这样的:
<a href="/page1.html">Link1</a>
<a href="/page2.html">Link2</a>
<a href="/page3.html">Link3</a>
我希望用户单击每个链接以移动到相应的网页,并且它按预期工作。问题是当用户与他们单击的链接位于同一页面时,我希望链接不执行任何操作(这意味着它只会重新加载页面)。让我通过一个例子来说明这一点:
当前使用:用户在 page1。用户点击link1。浏览器将重新加载 page1。
预期用途:用户在 page1 上。用户点击link1。浏览器什么都不做。
TL;DR 本质上,我正在寻找一个 if 子句。我已经读过 HTML 中没有 if 子句,仅仅是因为它是一种标记语言,但是实现它的另一种方法是什么?感谢您的帮助。
【问题讨论】:
-
我会在 page1 加载时使用 javascript 禁用 link1。
-
您可以使用 JavaScript 来执行此操作(通过阻止默认操作离开)或者 - 如果您使用服务器端脚本语言 - 您可以检测 URL 而不是将链接设为链接 (例如,只是一个
标签)。不过我也不会这样做——让浏览器按照它在其他网站上的工作方式来处理它;以这种方式使您的网站成为例外只会使可用性变得更糟。
-
为什么当前页面链接必须是 LINK?
-
@Wezly 正如我在之前的评论中所说,我使用的导航代码是通用的,每次更改都会影响所有页面上的所有导航链接。假设我稍后必须添加/删除/编辑导航链接,我将不得不编辑每个页面中的所有导航。
-
如果你的导航代码是通用的,我假设你已经包含了它——也许是 php?
<?include('navigation.php');?>- 如果是这样,那么只需使用 php 检测当前页面<?$_SERVER['PHP_SELF']?>并相应地生成导航。