我不明白为什么有时 IE11 在 header 定位完成后不去 anchor 。
我在 PHP 中有这个:
header('Location: ' . $_SERVER['PHP_SELF'] . '#order-a');
在 HTML 中,我尝试了 name=
和 id=
,其中一个在 IE 中使用 header('Location:
.
问题是:在 header('Location: '
完成后,它应该重新加载并滚动到 anchor 。这在 FF、Chrome 甚至 IE11 中都有效,但我的问题是在 IE11 中它有时不会滚动到 anchor 。(大约是五种情况之一)。
有什么想法吗?
最佳答案
(代表 OP 发布。)
感谢评论中的问题为我指明了正确的方向,我正在更多地探索这个问题并做了一个例子:输入已提交 -> header('Location: <with anchor>')
它甚至在 IE 中也能正常工作。所以我假设问题实际上不在 header('Location: ' . $_SERVER['PHP_SELF'] . '#order-a');
中。和 IE,因为它是有效的。
因此我再次检查了我的网站代码并意识到 <a name="order-a"></a>
位于具有样式 display: none
的 div 内在 URL 中包含 #order-a 之后,此 div 切换(感谢 JavaScript)样式显示 block 。
所以当我提交时,PHP 说转到 #order-a
但到那时#order-a
没有显示所以它不会移动到 anchor 但添加 #order-a
到 URL - 感谢它,JavaScript 完成了它的工作并设置了一个包含 #order-a
的 div显示 block 。
在我意识到这一点之后,我只是在我的 JS 中添加了一段代码,该代码在其 div 具有显示 block 后转到 anchor 。它正在发挥作用,谢谢大家用你们的问题为我指明了正确的方向。
关于php - PHP 中的 header ('Location: <anchor>' )在 IE11 中并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31743746/