我无法弄清楚为什么有时IE11在标题位置完成后没有进行锚定。
我在PHP中有这个:
header('Location: ' . $_SERVER['PHP_SELF'] . '#order-a');
在HTML格式中,我尝试了name=
和id=
,其中一个正在使用header('Location:
在IE中正常运行。
问题是:在完成header('Location: '
之后,它应该重新加载并滚动到锚点。这适用于FF,Chrome甚至是IE11,但我的问题是在IE11中有时不会滚动到锚点。 (大约在五个案例中的一个)。
有什么想法吗?
答案 0 :(得分:0)
(代表OP发表。)
感谢评论中的问题向我指出了正确的方向,我正在更多地探讨这个问题并做了一个例子:输入提交 - &gt; header('Location: <with anchor>')
它甚至在IE中工作。所以我认为问题实际上并不在header('Location: ' . $_SERVER['PHP_SELF'] . '#order-a');
和IE中,因为这是有效的。
因此,我再次浏览了我的网站代码并意识到<a name="order-a"></a>
位于具有样式display: none
的div内,并且此div在#order-a之后切换(感谢JavaScript)样式显示块包含在URL中。
因此,当我提交时,PHP会转到#order-a
,但到那时#order-a
显示为无,因此它不会移动到锚点但是会向网址添加#order-a
- 多亏了它,JavaScript完成了它的工作并设置了一个包含#order-a
的div来显示块。
在我意识到这一点之后,我刚刚在我的JS中添加了一个代码,该代码在div具有显示块之后进入锚点。并且它正在发挥作用,谢谢大家指出我的问题正确的方向。