我正在使用JQuery UI在我的应用程序中制作标签.我需要选项卡是可链接的(直接链接打开页面并选择正确的选项卡).这是通过使用散列标记/ 分段标识符来完成的.但是当选项卡上方和选项卡内部的内容很长时,我遇到了问题.
单击选项卡时,页面向下滚动到选项卡的开头.这不是我想要的.
我正在使用Jquery 1.7.1和Jquery UI 1.8.16.
javascript/Jquery代码是标准的Jquery UI选项卡,添加了事件"tabsshow".这在使用jquery ui标签更改location.hash(Stackoverflow问题)和JQuery UI标签时建议:点击标签时更新带有哈希的URL(博客 - 罗宾的技术日记)
$(document).ready(function() {
$("#tabs").tabs();
/**
* Add hash to URL of the current page
*
* http://chwang.blogspot.com/2010/02/jquery-ui-tabs-updating-url-with-hash.html
* https://stackoverflow.com/questions/570276/changing-location-hash-with-jquery-ui-tabs
*/
$("#tabs").bind('tabsshow',function(event, ui) {
window.location.hash = ui.tab.hash;
});
});
Run Code Online (Sandbox Code Playgroud)
以下HTML可用于测试行为
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
<div style="height: 400px;">Some other content</div>
<div id="tabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li class="ui-state-default ui-corner-top"><a href="#tab_1"><span>Tab 1</span></a></li>
<li class="ui-state-default ui-corner-top"><a href="#tab_100"><span>Tab 100</span></a></li> …Run Code Online (Sandbox Code Playgroud) 想象一下,您所在的网页上有一个网址,其网址包含一个片段(后面的部分#),然后点击一个链接转到另一个页面.大多数浏览器会将原始页面的URL发送到Referer标头中的服务器.我想知道的是URL片段是否包含在此片段中.
我已经看到了野外的各种行为,所以这可能是浏览器特定的.有谁知道哪些浏览器做什么?HTTP规范对此有何评论?
http-referer http cross-browser fragment fragment-identifier
如何从中获取URL片段标识符HttpServletRequest?
该javadocs中似乎没有提到它.
我试图找到一种方法来保存网址的哈希部分和PHP变量.这个想法有点怪异,但请耐心等待......
我想从以下URL中提取"location"片段并将其保存为PHP变量.
http://www.example.com/#location
Run Code Online (Sandbox Code Playgroud)
但是,此链接的讨论表明URL的片段只能通过JavaScript访问.
但是有可能创建一个链接,其中片段在URL中重复,由PHP解析,然后通过mod重写删除?所以....
原始网址:
http://www.example.com/location/#location
Run Code Online (Sandbox Code Playgroud)
由于URL中的普通"位置",PHP获取位置变量
然后Apache将链接重写为:
http://www.example.com/#location
Run Code Online (Sandbox Code Playgroud)
我很想知道是否有一种优雅的方法来解决这个问题.
我注意到Wikipedia使用百分比编码作为URL的路径部分,但将%字符转换.为#fragment.
例如,在俄罗斯的"俄罗斯"页面上,第2部分(История)的URL 是
http://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F#.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F
代替
http://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F#%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F
对于id/name,两者都不是有效的HTML <5令牌,因为令牌必须以[A-Za-z]开头.HTML5 目前声明您可以使用除空格之外的任何字符中的至少一个(因此您根本不需要编码),但维基百科不是HTML5.
那么,为什么维基百科使用这个方案呢?
在所有浏览器都支持onhashchange事件之前,最好的解决方法是什么?
在jQuery中有什么东西吗?还是作为插件?
我偶然发现了一个在其网址中使用多个片段标识符的网站,例如http://www.ejeby.se/#newprodukt#produkt#1075#1(不,它不是我的网站,但我链接到它,给我带来麻烦).
但这真的是对的吗?它似乎确实导致Safari和可能还有Internet Explorer的问题(传闻,我自己没有尝试过IE).
片段标识符不应该唯一标识文档中的一个位置吗?这是Safari中的一个错误,还是www.ejeby.se以错误的方式使用片段标识符?
编辑:似乎Safari的问题是它逃脱了所有#但是URL中的第一个#.其他浏览器不这样做.是否正确行为?
我是PHP开发的新手.
今天我偶然发现了有趣的主题URL碎片,特别是URL的"#"部分.
我搜索了它说它就像www.example.com\foo.html#bar.
但我不明白为什么需要这个"#bar".以及如何通过PHP阅读它?
我正在使用ajax更新框架中页面的位置.但是在设置哈希的位置时(特别是在Chrome和某些版本的IE(5.5)上,偶尔在IE7上),页面正在被重新加载.
以下html演示了这个问题.
主框架.... frame.html是
<html><head>
<frameset rows="*">
<frame src=sethash.html frameborder=0 scrolling=auto name=somebody>
</frameset>
</head></html>
Run Code Online (Sandbox Code Playgroud)
sethash.html页面是.
<html><head>
<script language=JavaScript>
var Count = 0;
function sethash()
{
top.document.location.hash = "hash" + Count;
Count++;
}
</script>
</head>
<body onload="alert('loaded')">
<h1>Hello</h1>
<input type='button' onClick='sethash()' value='Set Hash'>
</body>
</html>`
Run Code Online (Sandbox Code Playgroud)
在大多数浏览器中,加载frame.html会在加载页面时显示加载的警报.然后,当按下设置的哈希按钮时,URL将被更改,但加载的警报的哈希将不再显示.在Chrome和某些版本的IE上
Microsoft报告Internet Explorer 5.5 链接文本可能存在同样的问题
我不能使用microsoft建议的解决方案,即捕获事件而不是触发它,但只是滚动到视图,因为我使用set top.location.hash作为onLoad事件的一部分.
我有一个带有<base>标签的HTML页面,也包含SVG.然后SVG中的相同文档引用如下所示:
<html>
<head>
<base href="http://my/server/basedir">
</head>
<body>
<svg>
<g>
<path d="M100,100 L150,150" id="path"/>
<text>
<textpath xlink:href="#path"/>
</text>
</g>
</svg>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
该xlink:href="#path"参考文献没有解决.没有HTML base元素,这可以正常工作.如果我用一个绝对IRI后跟片段标识符替换元素href上的属性,它也可以工作textpath.
在我看来,SVG应该以不同的方式处理同一文档的IRI并且独立于HTML base.在http://www.w3.org/TR/xmlbase/#same-document中,它说"取消引用同一文档引用是专门处理的.",虽然在上下文中被授予xml:base.顺便说一句,我打了一个推杆xml:base上的svg元素重写HTML的希望base为无法弄清楚如何使这项工作环境.
url ×4
hash ×2
javascript ×2
jquery ×2
php ×2
ajax ×1
events ×1
fragment ×1
frameset ×1
hashchange ×1
http ×1
http-referer ×1
java ×1
jquery-ui ×1
mod-rewrite ×1
servlets ×1
svg ×1
tabs ×1
uri ×1
url-design ×1