问题标签 [fragment-identifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在框架中设置 location.hash
我正在使用 ajax 来更新框架中页面的位置。但是在设置哈希的位置时(特别是在 Chrome 和某些版本的 IE(5.5)上,但偶尔在 IE7 上)页面正在重新加载。
以下 html 演示了该问题。
主框架.... frame.html 是
sethash.html 页面是 .
在大多数浏览器上,加载 frame.html 会在页面加载时显示一次加载的警报。然后,当按下设置哈希按钮时,url 将被更改,但加载的警报的哈希不会再次显示。在 chrome 和某些版本的 IE 上
Microsoft 报告 Internet Explorer 5.5链接文本可能存在相同问题
我不能使用微软建议的解决方案,即捕获事件而不触发它,而只是滚动到视图中,就像使用将 top.location.hash 设置为 onLoad 事件的一部分一样。
javascript - 如何检测位置哈希的变化?
我正在使用 Ajax 和哈希进行导航。
有没有办法检查window.location.hash
更改是否像这样?
http://example.com/blah #123到http://example.com/blah #456
如果我在文档加载时检查它,它会起作用。
但是如果我有基于#hash 的导航,当我按下浏览器上的后退按钮时它不起作用(所以我从 blah#456 跳转到 blah#123)。
它显示在地址框中,但我无法用 JavaScript 捕捉它。
jquery - 重定向/刷新到片段标识符
我使用 iUI 框架来创建网站。如果您对此不熟悉,则您有一个由 div 组成的页面,并且您使用片段标识符在用户之间导航。
这样做的问题是,如果您的用户添加内容,则在刷新之前它是不可见的。在我的情况下,他们通过 jquery 帖子将数据添加到列表中,但就像我说他们在刷新之前什么都看不到,一旦你进行刷新,它就会进入父 div,因为 #fragment 已经丢失。
因此,在使用 window.location = mywebsite.com/#_fragment 更新后,我设法让页面转到 mywebsite.com/#_fragment ,但它实际上并没有重新加载页面。
任何人都知道如何将页面刷新为片段?
javascript - iframe 如何更改其父级的 URL 片段(不导致刷新)?
我试图让一个子 JavaScript 应用程序更新它的父文档。
本质上,这是一个非常简单的问题:
- JavaScript 程序在它自己的文档中打开一个 iframe。
- 另一个 JavaScript 程序被加载到 iframe 中。
- 第二个程序需要更改原始页面中的片段(锚点)。
- 第一个程序,然后“转到”新片段(文档位置已更新,但文档未刷新)。
在无数的网页中,都有关于如何做到这一点的描述,使用的技巧如下:
但是当我在 IE 中执行此操作时,父级似乎正在刷新自己。我认为页面正在重新加载。
只是让这有点棘手:
- 我需要所有浏览器(或至少 IE 和 Firefox)的解决方案。
- 这两个 JavaScript 程序实际上都是 GWT Web 应用程序(因此我可以将特定代码绑定到不同的浏览器版本)。
- 如有必要,我可以做一些奇怪的事情来绕过安全,父母和孩子总是互相认识的。孩子总是被父母叫住。
我已经尝试了各种网页上列出的许多其他技巧,但到目前为止,似乎没有一个足够稳定和简单到可以实际部署。
javascript - 保存 JavaScript 中哈希/锚点更改的历史记录
我目前正在实现一个 JavaScript 库,该库跟踪地址栏中哈希部分的更改历史记录。这个想法是你可以在散列部分保留一个状态,然后使用后退按钮回到之前的状态。
在大多数最近的浏览器中,这是自动的,您只需轮询location.hash
属性以进行更改(在 IE8 中您甚至不必这样做;您只需将函数附加到onhashchange
事件。)
我想知道的是,有什么不同的方法来跟踪历史?我已经实现了经过测试可以在 Internet Explorer 6/7/8、Firefox 和 Chrome 中运行的功能,但是其他浏览器呢?以下是我目前保留历史记录的方式:
编辑:请参阅下面的答案,了解各种浏览器的演练。
php - URL的PHP和哈希/片段部分
我正在尝试找到一种方法来保存 url 的哈希部分并作为 PHP 变量。这个想法有点古怪,但请耐心等待......
我想从以下 URL 中提取“位置”片段并将其保存为 PHP 变量。
但是,此链接上的讨论表明 URL 的片段只能通过 JavaScript 访问。
但是是否可以创建一个链接,其中片段在 URL 中重复,由 PHP 解析,然后由 mod rewrite 删除?所以....
原网址:
由于 URL 中的普通“位置”,PHP 获取位置变量
然后 Apache 将链接重写为:
我很想知道是否有一种优雅的方法来解决这个问题。
css - URL 片段如何影响 CSS 布局?
比较这 3 个 URL(在每种情况下查看顶部导航栏):
- http://fast.kirkdesigns.co.uk/blog
- 如上所述,但带有 url 片段 #navigation
- 如上所述,但带有 url 片段 #node-2655
请注意,唯一的区别是最后的 URL 片段。
前两页显示得非常好(至少在 Firefox 中)。这是第三个问题所在。片段#node-2655 将顶部导航栏推离屏幕顶部。然后,当您向上滚动到页面顶部时,导航栏已被切成两半。当使用任何导致导航栏在页面首次加载时超出初始视口的 URL 片段时,就会发生这种情况。
那么,使用 url 片段如何影响这样的 css 布局?!
解决方案:如下所示,删除溢出:隐藏在保存导航栏的容器元素上修复了问题。我很想知道为什么!
jquery - 哈希后将数据存储在 URI 中
我想在哈希后将键/值对存储在 URI 中以供客户端使用,如下所示:
是否有一个预先存在的解决方案已经这样做了,或者我应该自己推出?我已经在使用 JQuery,所以特别欢迎 JQuery 解决方案。
我最初的想法是使用正则表达式,但这会变得复杂,尤其是当您添加转义键和值的需要时。
编辑:让我澄清一下。我想做这样的事情:
javascript - Jquery - 告诉哈希何时更改?
我试图让我的网站正确响应后退按钮。我已经保存了我想要它做的那个散列,但是我不知道 jQuery 能够判断散列何时更改的钩子。它不是 .ready(),因为页面不会重新加载。我用什么?
为清楚起见进行编辑:
我使用的是 iframe,所以我不知道何时有人点击了链接。它在同一个子域上,所以我可以看到它的文件路径,并且正在保存它,以便您可以添加书签。不幸的是,通过将其保存为哈希,我的后退按钮现在无法重新加载,也无法重新加载 iframe,所以我的后退按钮基本上坏了。如果有办法判断 URI 何时更改,我可以对照 iframe 地址检查它,如果它们不匹配则更改它。
我需要的只是一种检查 URI 是否已更改的方法。URI 是否有 .change() ?类似的东西?