我希望在哈希之后的URI中存储键/值对,以便在客户端使用,如下所示:
http://www.foo.com/index.html#foo=bar&baz=quux
Run Code Online (Sandbox Code Playgroud)
是否已经存在已经存在的解决方案,或者我应该自行推出?我已经在使用JQuery了,所以特别欢迎JQuery解决方案.
我最初的想法是使用正则表达式,但这很复杂,特别是当你需要转义键和值时.
编辑:让我澄清一下.我想做这样的事情:
foo = hash.get('foo');
hash.set('bar','baz');
Run Code Online (Sandbox Code Playgroud) 比较这3个URL(在每种情况下查看顶部导航栏):
请注意,唯一的区别是末尾的URL片段.
前两页显示绝对正常(至少在Firefox中).这是问题所在的第三个问题.片段#node-2655将顶部导航栏推离屏幕顶部.然后,当您向上滚动到页面顶部时,导航栏已被切成两半.当使用任何URL片段导致导航栏在首次加载页面时超出初始视口时会发生这种情况.
那么,如何使用url片段影响css布局呢?!
解决方案:如下所示,删除溢出:隐藏在容纳导航栏的容器元素上修复了问题.我很想知道为什么!
Facebook正在使用Ajax历史记录(后退和前进按钮)和书签#!
而不是仅使用#
URL.这样做总是一个好主意,因为我认为通常的锚可能会干扰Ajax历史机制以触发它处理普通锚.
因此,Ajax History函数仅在它看到#!
而不是仅仅处理散列部分时才会处理散列部分#
.
并使用!
与主流浏览器兼容?如果Facebook正在使用!
,猜测它可能得到相当好的支持.
我的问题类似于这个,但没有一个答案解决了我的问题: 使用JQuery preventDefault(),但仍然添加URL的路径
当用户单击片段链接时,我需要删除跳转到片段的默认行为,但仍然将片段添加到URL.此代码(取自链接)将触发动画,然后将片段添加到URL.然而,片段然后导航到,我的情况下我的网站.
$("#login_link").click(function (e) {
e.preventDefault();
$("#login").animate({ 'margin-top': 0 }, 600, 'linear', function(){ window.location.hash = $(this).attr('href'); });
});
Run Code Online (Sandbox Code Playgroud) 我见过的大多数jquery深层链接插件都要求我将"#"附加到我的链接上.这是一个例子:
<a href="#page1.html">Page 1</a>
Run Code Online (Sandbox Code Playgroud)
即使Twitter的这是否(但是,微博遵循使用抓取链接的谷歌规范#!
,这也是由像jQuery烧烤和jQuery jQuery的地址深层链接库支持).
我用新的Twitter关闭了Javascript,但它不起作用.我问这个问题是否可以应用深层链接,即使使用Javascript关闭也仍然有一个功能性网站.
提前致谢!
javascript jquery deep-linking fragment-identifier jquery-address
我决定尝试使用CSS和HTML创建一个标签式菜单.使用:target
伪类来显示适当的div
,我实现了它,只是它跳得太多以至于用户友好:
http://brad.sebdengroup.com/newodynsite/stockman.php#StockControl
无论如何我可以解决这个问题吗?最初,我想远离JavaScript,但我很乐意添加一些,如果它修复了这个.
注意:我知道我可以使用jQuery /一些花哨的库重建一个新的选项卡式菜单,但如果可能的话,我宁愿修复它.
是否有用于“不存在片段标识符”的 css 选择器?的相反:target
。
问题是,我正在制作一个文档,其中的不同部分是可见的,具体取决于您提供的片段标识符。把它想象成一个精灵文件,只适用于 HTML。
所以它看起来像这样
<style>
section {display:none}
section:target {display:block}
</style>
<body>
<section id="one">The first block (showing with #one)</section>
<section id="two">The second block (showing with #two)</section>
<section id="three">The third block (showing with #three)</section>
</body>
Run Code Online (Sandbox Code Playgroud)
如果第一部分显示document.html#one
在位置栏等上,则用户会看到第一部分。
这个想法是浏览器将缓存 html 页面(因为它只是静态 html)并且在显示另一个文本块时不需要加载其他内容,从而最小化服务器负载。
但是当您在没有片段标识符的情况下调用文件时,该文件看起来非常空,所以我想知道是否有办法在这种情况下使其所有内容都可见,而没有任何隐藏部分。只有 CSS,没有 JS 或服务器端处理;否则它就不是静态 HTML!
编辑:
与建议的重复项不同,当没有片段标识符时,我想“简单地”显示整个文档,而不仅仅是一个元素。
换句话说,默认值(没有任何#)应该是显示所有内容;仅当是一个#应该一切,但目标是隐藏的。
重复项根本没有解决这种情况。
我使用iUI框架来创建一个站点.如果你不熟悉这个,你有一个由div组成的页面,你用片段标识符在用户之间导航.
这样做的问题是,如果您的用户添加内容,则在刷新之前它们是不可见的.在我的sistuation中,他们通过jquery帖子将数据添加到列表中,但就像我说他们在刷新之前什么都看不到,一旦你刷新它就会转移到父div,因为#fragment已经丢失了.
所以我设法让页面在使用window.location = mywebsite.com/#_fragment更新后转到mywebsite.com/#_fragment,但实际上并没有重新加载页面.
有任何线索有如何刷新页面片段?
我很好奇,为什么我在运行这行时遇到404错误:
urllib2.urlopen("http://localhost/new-post#comment-29")
Run Code Online (Sandbox Code Playgroud)
虽然一切正常,但在任何浏览器中浏览http:// localhost/new-post#comment-29 ...
urlopen方法不解析带有"#"的网址?
有人知道吗?
我必须得到URL中#字符旁边的内容(在javascript中).例如,当有é时,我会获得转义字符.我可以unescape()他们,但我得到奇怪的字符,如Ã.我怎样才能找到合适的角色?
javascript url diacritics character-encoding fragment-identifier
我正在使用jQuery地址库来重写我的URL,具体取决于用户在页面中执行的操作.目的是允许用户为页面添加书签并稍后返回.页面永远不会刷新,因为所有服务器交互都是通过ajax完成的.
jQuery Address正在写这样的URL:
HTTP://本地主机:9000 /#/ U/scott_tiger
我需要在Play中设置路由,以便能够将该请求路由到适当的控制器.所以我设置了这个:
GET /#/u/{username} Controller.showUser
Run Code Online (Sandbox Code Playgroud)
但这不起作用,路由定义被忽略.我尝试过很多东西,例如试图逃避"#"并用一个我用Character.toString(35)填充的变量替换它.这些都不起作用.
有谁知道如何正确定义路由或获取jQuery地址不写"#".
编辑:"#"没有被发送到服务器做它.卫生署!好的,问题被修改了.
如何在jquery哈希中获得多个值?
例:
http://mysite.com/#l:value&v:id1212相同但没有页面刷新http://mysite.com/?l=value&v=id1212
我想的是:
var hash = location.hash.replace(/^.*?#/, '');
var lVal = (/^l:/.test( hash ));
var vVal = (/^v:/.test( hash ));
Run Code Online (Sandbox Code Playgroud)
但我怎么能解决var lVal只读取直到&符号?我正朝着正确的方向前进吗?
我使用了如何将href定位到div 以将href定位到div所示的方法.有效.但我需要增加另一个级别.
HTML
<ul >
<li class="active"><a href="#m1">home</a></li>
<li><a href="#m2">settings</a></li>
</ul>
<div class="target">
<div id="m1">
<ul >
<li class="active"><a href="#subm1-1" title="Home1">Item1</a></li>
<li><a href="#subm1-2">Item 2</a></li>
</ul>
</div>
<div id="m2">
<ul>
<li class="active"><a href="#subm2-1" title="Home1">Item1</a></li>
<li><a href="#subm2-2">Item 2</a></li>
</ul>
</div>
</div>
<div class="target123">
<div id="subm1-1">
content1
</div>
<div id="subm1-2">
content2
</div>
<div id="subm2-1">
content3
</div>
<div id="subm2-2">
content4
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.target > div {
display:none;
}
.target > div:target{
display:block;
}
.target123 > div {
display:none;
}
.target123 > div:target{ …
Run Code Online (Sandbox Code Playgroud) jquery ×5
css ×4
javascript ×4
ajax ×2
html ×2
pseudo-class ×2
url ×2
anchor ×1
deep-linking ×1
diacritics ×1
hashbang ×1
hashchange ×1
height ×1
iui ×1
java ×1
layout ×1
python ×1
uri ×1
url-routing ×1
urllib2 ×1
urlopen ×1
viewport ×1