当想要用" http://example.com/#foo
"方法引用网页的某些部分时,应该使用
<h1><a name="foo"/>Foo Title</h1>
Run Code Online (Sandbox Code Playgroud)
要么
<h1 id="foo">Foo Title</h1>
Run Code Online (Sandbox Code Playgroud)
他们都工作,但他们是平等的,还是他们有语义差异?
我有一些jQuery JavaScript代码,我想只在URL中有一个哈希(#)锚链接时运行.如何使用JavaScript检查此角色?我需要一个简单的catch-all测试来检测这样的URL:
基本上是这样的:
if (thereIsAHashInTheUrl) {
do this;
} else {
do this;
}
Run Code Online (Sandbox Code Playgroud)
如果有人能指出我正确的方向,那将非常感激.
我刚才注意到,我们习惯使用的漫长而复杂的Facebook网址现在看起来像这样:
http://www.facebook.com/example.profile#!/pages/Another-Page/123456789012345
据我所知,今年早些时候它只是一个普通的URL片段式字符串(以...开头#
),没有感叹号.但现在它是一个shebang或hashbang(#!
),我以前只在shell脚本和Perl脚本中看到过.
在新的Twitter的网址,现在还采用了#!
符号.例如,Twitter个人资料网址现在看起来像这样:
http://twitter.com/#!/BoltClock
#!
现在是否在URL中起了一些特殊的作用,比如某个Ajax框架或某些东西,因为新的Facebook和Twitter界面现在基本上是Ajax化的?在我的URL中使用它会以任何方式使我的Web应用程序受益吗?
我正在使用Ajax和hash进行导航.
有没有办法检查是否window.location.hash
改变了这样?
http://example.com/blah #123到http://example.com/blah #456
如果我在文档加载时检查它,它可以工作.
但是如果我有基于#hash的导航,那么当我按下浏览器上的后退按钮时它就不起作用了(所以我从#456跳到了#123).
它显示在地址框内,但我无法用JavaScript捕获它.
javascript ajax javascript-events fragment-identifier hashchange
我有这样的URL:http://example.com#something
如何删除#something
,而不会导致页面刷新?
我尝试了以下解决方案:
window.location.hash = '';
Run Code Online (Sandbox Code Playgroud)
但是,这不会#
从URL中删除哈希符号.
我如何使用可能对当前页面产生一些影响的JavaScript操作,但也会更改浏览器中的URL,以便在用户点击重新加载或书签时使用新URL?
如果后退按钮会重新加载原始URL也会很好.
我试图在URL中记录JavaScript状态.
我们有一些页面使用ajax来加载内容,并且在某些情况下我们需要深入链接到页面.而不是链接到"用户"并告诉人们点击"设置",能够将人们链接到user.aspx#settings是有帮助的
为了让人们能够为我们提供正确的部分链接(用于技术支持等),我已将其设置为在点击按钮时自动修改URL中的哈希值.唯一的问题当然是,当发生这种情况时,它还会将页面滚动到此元素.
有没有办法禁用它?以下是我到目前为止这样做的方法.
$(function(){
//This emulates a click on the correct button on page load
if(document.location.hash){
$("#buttons li a").removeClass('selected');
s=$(document.location.hash).addClass('selected').attr("href").replace("javascript:","");
eval(s);
}
//Click a button to change the hash
$("#buttons li a").click(function(){
$("#buttons li a").removeClass('selected');
$(this).addClass('selected');
document.location.hash=$(this).attr("id")
//return false;
});
});
Run Code Online (Sandbox Code Playgroud)
我曾希望return false;
会阻止页面滚动 - 但它只会使链接无法正常工作.所以现在只是注释掉,所以我可以导航.
有任何想法吗?
我想在当前页面的URL中获取哈希后的值,然后能够在新函数中应用它...例如.
URL可以是
www.example.com/index.html#foo
Run Code Online (Sandbox Code Playgroud)
我想结合下面的代码使用它
$('ul#foo:first').show();
Run Code Online (Sandbox Code Playgroud)
我有点假设/希望有一些方法可以抓住这个,并把它变成一个变量,然后我可以在第二段代码中使用它.
我知道在客户端(javascript)你可以使用windows.location.hash但无论如何都无法从服务器端访问.
众所周知,URL片段(后面的部分#
)不会发送到服务器.
我确实想知道当涉及服务器重定向(通过HTTP状态302和Location:
标头)时片段如何工作.
我的问题实际上是双重的:
如果原始URL有片段(/original.php#foo
),并且进行了重定向/new.php
,那么原始URL的片段部分是否会丢失?或者它有时会应用到新的URL?
新的URL是否会出现/new.php#foo
在这种情况下?
无论原始URL如何,如果服务器重定向到带有fragment(/new.php#foo
)的新URL,该片段是否会被"尊重"?或者服务器真的没有任何业务干扰片段 - 浏览器因此会忽略它只是去/new.php
?