Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 原生HTML是否曾经自动禁用指向当前页面的链接,如果是,我如何实现这一点?_Javascript_Html_Css_Hyperlink - Fatal编程技术网

Javascript 原生HTML是否曾经自动禁用指向当前页面的链接,如果是,我如何实现这一点?

Javascript 原生HTML是否曾经自动禁用指向当前页面的链接,如果是,我如何实现这一点?,javascript,html,css,hyperlink,Javascript,Html,Css,Hyperlink,我清楚地记得十年前我第一次开始写HTML的时候,我所知道的唯一的CSS是样式而不是选择器,我不知道JavaScript,但我一直发现它只在过去几年存在 我无法验证我的假设,但基于猜测,我相信我使用的是带有目录的框架: <!DOCTYPE html> <html lang="en-US"> <body> <frameset cols="50%,50%"> <frame src="toc.html"> <frame name=

我清楚地记得十年前我第一次开始写HTML的时候,我所知道的唯一的CSS是样式而不是选择器,我不知道JavaScript,但我一直发现它只在过去几年存在

我无法验证我的假设,但基于猜测,我相信我使用的是带有目录的框架:

<!DOCTYPE html>
<html lang="en-US">
<body>
<frameset cols="50%,50%">
  <frame src="toc.html">
  <frame name="1" src="1.html">
  <noframe>
    Frames are disabled for this browser.
  </noframe>
</frameset> 
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<body>
    <a href="1.html" target="1">1.html</a><br />
    <a href="2.html" target="1">2.html</a><br />
</body>
</html>
这是我的目录:

<!DOCTYPE html>
<html lang="en-US">
<body>
    <a href="1.html" target="1">1.html</a><br />
    <a href="2.html" target="1">2.html</a><br />
</body>
</html>
但我尝试过的每一款浏览器都有noframes内容:Firefox、Chrome和Safari:

但是,当我让它工作时,如果我碰巧在一个框架中导航到它,它将禁用链接:

但现在,它总是显示链接:


我真的很想知道我过去做的解决方案是什么,但是如果它与框架有关,它就死定了。我正在寻找一个纯HTML/CSS解决方案,但我可能能够在其中加入一点JavaScript。

是的,您需要某种处理:JavaScript,或者一些像PHP这样的动态语言。基本上,你需要做的是添加一个CSS类,比如visited类,它包括变灰或任何你想要的样式,你可以在页面加载时应用到链接上。javascript/php/等将用于检查您是否已经在给定页面上。

由于听起来您有静态HTML页面,因此可以使用严格的HTML方法禁用链接,如以下示例所示:

Before: <a href="3.html">Page Three</a>
After: <a>Page THree</a>
澄清: 大多数人仍然建议使用Javascript和CSS来执行此需求。这很简单:

<a href="javascript:void(0)" style="cursor: default;">123n</a>

您没有标记问题的CSS只能更改链接的样式,但无法检测URL或禁用任何内容。为此,您需要JavaScript,您也没有用它标记您的问题。@j08691不,完全不正确。这是HTML固有的功能。我在其他没有应用JavaScript或CSS的网站上看到过这个功能。你说得对。我知道什么?祝你好运@j08691拥有10万的声誉,您可以自己轻松地将这些标签编辑到我的问题中。相反,你进入我的问题,对我的问题不恰当地加上标签而屈尊于我,并可能带着怨恨的-1。一点也不专业。我的观点是,我在HTML页面中看到这种行为时没有任何特殊的CSS或JavaScript,因此我不认为有必要使用这些标记。很抱歉,你觉得我是在屈尊于你。我曾经指出,你的原始标记html和超链接本身不允许你描述的内容,如果你觉得不需要这些标记,那么为什么要添加它们呢?。除非得到确认,否则我不会根据我的评论编辑问题标签。例如,PHP可以做您想做的事情,但是您没有提到任何服务器端代码,所以我不会添加这样的标记。另外,我没有否决你的投票,因为投票是完全匿名的,我不知道你为什么会这么说。请记住,如果你的PHP或其他生成语言添加style=color:grey标记,你当然可以在没有外部样式表或活动JS:的情况下获得相同的结果。不过,完全使用CSS会更优雅。我正在将这些HTML文件推送到内容服务器,所以我不能使用PHP。在这种情况下,直接修改HTML页面本身:更改page.HTML中的所有内容。下面的答案描述了如何使链接不去任何地方,而要使其看起来不同,则应使用style=tags。有一些非CSS的方式可以改变样式,但现在已经被严重淘汰了。最好的方法是样式=字体重量:粗体;颜色:黑色;文本装饰:无;。当然,您也可以将特定页面上的链接更改为首先使用标记,而不是标记。