【问题标题】:How to link a webpage to itself without first knowing its name?如何在不知道其名称的情况下将网页链接到自身?
【发布时间】:2013-03-04 12:46:47
【问题描述】:

要将页面链接到自身(例如http://example.com/folder/ThisPage.html),我们可以简单地创建一个href:

ThisPage.html

<a href="ThisPage.html">Link</a>

这可行,但缺点是当文件名更改时需要更新。例如,如果文件名更改为ThatPage.html,我们的href需要相应更改为&lt;a href="ThatPage.html"&gt;Link&lt;/a&gt;

我正在寻找没有这个缺点的替代方案。我试过了:

  • &lt;a href="?"&gt;Link&lt;/a&gt;

    不像&lt;a href="ThisPage.html"&gt;Link&lt;/a&gt; 那样工作,因为它将“空白查询部分”(问号)附加到 URL。

  • &lt;a href=""&gt;Link&lt;/a&gt;

    在某些浏览器(例如 Opera)上不像 &lt;a href="ThisPage.html"&gt;Link&lt;/a&gt; 那样工作。

我们如何将页面链接到自身,而无需在页面名称更改时更新相关部分?

注意:不允许使用 JavaScript。

【问题讨论】:

  • 您希望链接到自身的页面做什么?您希望它转到网站的特定部分还是打开一个新页面?
  • @scrappedcola。它加载一个与自身具有相同 URL 的页面。 (有些人可能称之为“刷新”)
  • 既然这是一个有效的问题......所以我想知道为什么要投反对票?
  • 这个问题对我来说看起来不错,我猜有人只是说“哦,这是一个 HTML 问题,它一定很简单”,并在没有真正阅读的情况下反射性地投了反对票。
  • 只是好奇,&lt;a href=""&gt; 在哪些浏览器上不起作用?

标签: html hyperlink href


【解决方案1】:

如果你想让它无处可去,你可以使用

<a href="javascript:;">link</a>

但如果您希望它重新加载页面,则必须使用 JavaScript。

如果你想重新加载页面,你可以使用元刷新标签

http://www.w3.org/TR/WCAG20-TECHS/H76.html

【讨论】:

  • 元刷新还要求我们明确声明 URL...是的,依靠 JavaScript 肯定会成功(因为我们可以阅读 window.location),但我想知道是否存在非 JS 解决方案。
【解决方案2】:

给你。希望这就是你要找的东西

    <a href="#">Link</a>

【讨论】:

  • 这只会跳转到页面顶部。它不会触发页面刷新。
  • 阅读this bold 你试过使用完整的网址吗? fullurl.com/yourpage.html>refresh</a>
  • 你读过这个问题吗? OP 特别不想在其中硬编码完整的 url。
【解决方案3】:

只需使用&lt;a href="?"&gt;Link&lt;/a&gt;。没有人关心附加在 URL 上的问号。它满足要求,这才是正确的?

【讨论】:

  • . 将删除文件名(example.com/foo/bar.html 将变为 example.com/foo/)。
  • 嗯,好的。将我的答案更改为原始形式;_)
  • @Bart,对我们来说这只是一个问号。对于服务器来说,这是一个完全不同的页面。
  • @Pacerier - 不应该是这样。如果是的话。服务器配置错误。 ? 表示查询字符串的开始,而不是位置。
  • @Bart,因为即使 your 服务器可能返回相同的资源,但我所在的服务器并未配置为这样做。它会在很多方面破坏我的页面,包括破坏缓存等。
【解决方案4】:

如果你想重新加载页面,你真的应该看看 javascript。这是最好的方法。

【讨论】:

  • 是的,依靠 JavaScript 肯定能解决问题(因为我们可以读取 window.location),但我想知道是否存在非 JS 解决方案。
【解决方案5】:

您是否尝试过简单地将“/”放在锚标记中,链接

【讨论】:

  • 这不起作用。试试吧。它链接到首页http://example.com/而不是当前页(除非当前页也是首页)
【解决方案6】:

您可以只链接到同一页面。

【讨论】:

  • 是的,但正如问题中所述,缺点是页面名称更改时必须更新。
【解决方案7】:

这样做:

<a href = "/">This Very Site</a>

来源:我在Matthew Alger's website的源代码中看到了这个。自己去看看吧!

【讨论】:

  • 这不起作用。试试吧。它链接到首页http://example.com/而不是当前页(除非当前页也是首页)
【解决方案8】:

为什么不试试&lt;a href="./"&gt;&lt;/a&gt;

我查了一些东西,结果发现,./ 指的是当前目录。

【讨论】:

    【解决方案9】:

    这很简单,只需将href="" 留空即可。就是这样:

    <a href="">Click me to refresh page</a>
    

    但这不一定是一个好主意,因为缓存可能不会被清除,无论您需要什么,如果页面在此期间发生了更改,尽管重新加载,更改可能不会出现。可能一个更好的主意是使用 javascript 代码 location.reload();。但是其他网站上的解释已经够多了,所以这里就不解释了。当然,您也可以使用问号 (?),但这是不必要的,实际上不是为此而设计的,并且可能会根据程序导致问题。


    以下是常用超链接的简短列表:

    指向根页面

    <a href="/">Link</a>
    

    指向相对于根页面的文件

    <a href="/file.ext">Link</a>
    

    指向相对于当前文件的文件

    <a href="file.ext">Link</a>
    

    指向上一个文件夹中的文件

    <a href="../file.ext">Link</a>
    

    指向上一个文件夹中的文件

    <a href="../../file.ext">Link</a>
    

    指向下面文件夹中的文件

    <a href="folder/file.ext">Link</a>
    

    指向当前文件

    <a href="">Link</a>
    

    指向具有不同主机但协议相同的页面

    <a href="//domain.tld/file.ext">Link</a>
    

    我希望我的回答对一些人有所帮助,因为我是通过搜索引擎找到的,发现没有正确答案。这是我在这里的第一个答案?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-05
      • 2012-11-09
      • 1970-01-01
      • 2013-08-06
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多