【问题标题】:href link to # question指向#问题的href链接
【发布时间】:2010-12-30 14:20:28
【问题描述】:

我对 href 链接有疑问,尝试用谷歌搜索它,但找不到太多关于此的信息。我有一个这样的href链接:

<a href='#' onclick='openSerialWindow();return false;'><h:outputText value="#{i18n.regFindSerialNumber}" /></a>

以前# 被它应该链接到的page.htm 所取代,当用户右键单击链接并选择“在新窗口/标签中打开”时会导致错误。用 # 替换 page.htm 后,它可以正常工作,用户甚至可以 r/c 并在新选项卡/窗口中打开它。

如果用户只是点击上述两种方式的链接(# 和 page.htm),那么我想知道# 的真正含义是什么?

谢谢。

【问题讨论】:

    标签: html href location-href


    【解决方案1】:

    见:http://www.w3.org/TR/html4/struct/links.html

    # 表示指向页面内 [named] 锚点的链接。

    调用某些 javascript 的 &lt;A&gt; 通常不适用于“在新窗口/选项卡中打开”命令。

    【讨论】:

      【解决方案2】:

      # 是一个锚散列,指向当前页面的顶部。

      您可以像这样在文档中创建锚点:&lt;a name='anchor'&gt;&lt;/a&gt;,然后通过将#anchor 添加到页面的 URL 来跳转到它们。浏览器将跳转到该位置而不重新加载。

      如果链接到 page.htm 产生错误,则 page.htm 是不正确的链接。

      href 属性仅在没有 Javascript 的情况下作为后备存在。 Javascripts 的return false; 阻止执行链接。链接到#意味着如果关闭了javascript,点击链接不会发生任何事情,只是浏览器会跳转到页面顶部。

      【讨论】:

      • 此外,除非某些 REQUIRES javascript 可以工作(例如 ajax 链接),否则您应该始终使用指向预期页面的有效 URL 作为 href 并且 jsut 返回 false从您的点击开始 - 这样他的页面就会因某种原因而没有 JS 的人降级。
      • 仅当用户右键单击并选择“在新选项卡/窗口中打开”时,链接到 page.htm 才会出现 404 错误,如果只是单击链接没有错误,它就可以正常工作。而使用 # 它可以双向工作。
      猜你喜欢
      • 1970-01-01
      • 2014-08-08
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多