问题标签 [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.

0 投票
7 回答
9956 浏览

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 事件的一部分一样。

0 投票
13 回答
415973 浏览

javascript - 如何检测位置哈希的变化?

我正在使用 Ajax 和哈希进行导航。

有没有办法检查window.location.hash更改是否像这样?

http://example.com/blah #123http://example.com/blah #456

如果我在文档加载时检查它,它会起作用。

但是如果我有基于#hash 的导航,当我按下浏览器上的后退按钮时它不起作用(所以我从 blah#456 跳转到 blah#123)。

它显示在地址框中,但我无法用 JavaScript 捕捉它。

0 投票
2 回答
3388 浏览

jquery - 重定向/刷新到片段标识符

我使用 iUI 框架来创建网站。如果您对此不熟悉,则您有一个由 div 组成的页面,并且您使用片段标识符在用户之间导航。

这样做的问题是,如果您的用户添加内容,则在刷新之前它是不可见的。在我的情况下,他们通过 jquery 帖子将数据添加到列表中,但就像我说他们在刷新之前什么都看不到,一旦你进行刷新,它就会进入父 div,因为 #fragment 已经丢失。

因此,在使用 window.location = mywebsite.com/#_fragment 更新后,我设法让页面转到 mywebsite.com/#_fragment ,但它实际上并没有重新加载页面。

任何人都知道如何将页面刷新为片段?

0 投票
7 回答
3419 浏览

javascript - 如果 URL 哈希发生变化,页面会显示不同的内容吗?

页面如何根据URL 哈希显示不同的内容?

我不是在谈论浏览器向下滚动以显示锚定部分,而是像 JavaScript 对那个哈希做出反应并通过 AJAX 加载不同的内容。

这是常见的还是可能的?

0 投票
2 回答
5647 浏览

javascript - iframe 如何更改其父级的 URL 片段(不导致刷新)?

我试图让一个子 JavaScript 应用程序更新它的父文档。

本质上,这是一个非常简单的问题:

  • JavaScript 程序在它自己的文档中打开一个 iframe。
  • 另一个 JavaScript 程序被加载到 iframe 中。
  • 第二个程序需要更改原始页面中的片段(锚点)。
  • 第一个程序,然后“转到”新片段(文档位置已更新,但文档未刷新)。

在无数的网页中,都有关于如何做到这一点的描述,使用的技巧如下:

但是当我在 IE 中执行此操作时,父级似乎正在刷新自己。我认为页面正在重新加载。

只是让这有点棘手:

  • 我需要所有浏览器(或至少 IE 和 Firefox)的解决方案。
  • 这两个 JavaScript 程序实际上都是 GWT Web 应用程序(因此我可以将特定代码绑定到不同的浏览器版本)。
  • 如有必要,我可以做一些奇怪的事情来绕过安全,父母和孩子总是互相认识的。孩子总是被父母叫住。

我已经尝试了各种网页上列出的许多其他技巧,但到目前为止,似乎没有一个足够稳定和简单到可以实际部署。

0 投票
5 回答
18726 浏览

javascript - 保存 JavaScript 中哈希/锚点更改的历史记录

我目前正在实现一个 JavaScript 库,该库跟踪地址栏中哈希部分的更改历史记录。这个想法是你可以在散列部分保留一个状态,然后使用后退按钮回到之前的状态。

在大多数最近的浏览器中,这是自动的,您只需轮询location.hash属性以进行更改(在 IE8 中您甚至不必这样做;您只需将函数附加到onhashchange事件。)

我想知道的是,有什么不同的方法来跟踪历史?我已经实现了经过测试可以在 Internet Explorer 6/7/8、Firefox 和 Chrome 中运行的功能,但是其他浏览器呢?以下是我目前保留历史记录的方式:

编辑:请参阅下面的答案,了解各种浏览器的演练。

0 投票
5 回答
26152 浏览

php - URL的PHP​​和哈希/片段部分

我正在尝试找到一种方法来保存 url 的哈希部分并作为 PHP 变量。这个想法有点古怪,但请耐心等待......

我想从以下 URL 中提取“位置”片段并将其保存为 PHP 变量。

但是,此链接上的讨论表明 URL 的片段只能通过 JavaScript 访问。

但是是否可以创建一个链接,其中片段在 URL 中重复,由 PHP 解析,然后由 mod rewrite 删除?所以....

原网址:

由于 URL 中的普通“位置”,PHP 获取位置变量

然后 Apache 将链接重写为:

我很想知道是否有一种优雅的方法来解决这个问题。

0 投票
8 回答
1420 浏览

css - URL 片段如何影响 CSS 布局?

比较这 3 个 URL(在每种情况下查看顶部导航栏):

  1. http://fast.kirkdesigns.co.uk/blog
  2. 如上所述,但带有 url 片段 #navigation
  3. 如上所述,但带有 url 片段 #node-2655

请注意,唯一的区别是最后的 URL 片段。

前两页显示得非常好(至少在 Firefox 中)。这是第三个问题所在。片段#node-2655 将顶部导航栏推离屏幕顶部。然后,当您向上滚动到页面顶部时,导航栏已被切成两半。当使用任何导致导航栏在页面首次加载时超出初始视口的 URL 片段时,就会发生这种情况。

那么,使用 url 片段如何影响这样的 css 布局?!

解决方案:如下所示,删除溢出:隐藏在保存导航栏的容器元素上修复了问题。我很想知道为什么!

0 投票
4 回答
2922 浏览

jquery - 哈希后将数据存储在 URI 中

我想在哈希后将键/值对存储在 URI 中以供客户端使用,如下所示:

是否有一个预先存在的解决方案已经这样做了,或者我应该自己推出?我已经在使用 JQuery,所以特别欢迎 JQuery 解决方案。

我最初的想法是使用正则表达式,但这会变得复杂,尤其是当您添加转义键和值的需要时。

编辑:让我澄清一下。我想做这样的事情:

0 投票
5 回答
13143 浏览

javascript - Jquery - 告诉哈希何时更改?

我试图让我的网站正确响应后退按钮。我已经保存了我想要它做的那个散列,但是我不知道 jQuery 能够判断散列何时更改的钩子。它不是 .ready(),因为页面不会重新加载。我用什么?

为清楚起见进行编辑:

我使用的是 iframe,所以我不知道何时有人点击了链接。它在同一个子域上,所以我可以看到它的文件路径,并且正在保存它,以便您可以添加书签。不幸的是,通过将其保存为哈希,我的后退按钮现在无法重新加载,也无法重新加载 iframe,所以我的后退按钮基本上坏了。如果有办法判断 URI 何时更改,我可以对照 iframe 地址检查它,如果它们不匹配则更改它。

我需要的只是一种检查 URI 是否已更改的方法。URI 是否有 .change() ?类似的东西?