Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将滚动位置刷新为“当前定位点名称”属性_Javascript_Jquery - Fatal编程技术网

Javascript 将滚动位置刷新为“当前定位点名称”属性

Javascript 将滚动位置刷新为“当前定位点名称”属性,javascript,jquery,Javascript,Jquery,嗨 所以我有一个主菜单,还有一些子菜单。主菜单li a[href]指向不同页面的链接,以及子菜单li a[href]指向每个页面内特定位置的链接(带有to)。现在,由于这是一个带有定制CMS的网站,我无法更改所有LIA的每个属性,否则我将使菜单无法为知识较少的人编辑。因此,我将每个子菜单li a重定向到正确的锚定名称属性链接 现在,一旦我点击了一个子菜单li a,我将被重定向到正确的页面和正确的锚名称属性链接。但是如果在哪里,我就不太清楚了。视口始终位于元素的上方或下方 由于某些原因,这种情况在

所以我有一个
主菜单
,还有一些
子菜单
主菜单li a[href]
指向不同页面的链接,以及
子菜单li a[href]
指向每个页面内特定位置的链接(带有
to)。现在,由于这是一个带有定制CMS的网站,我无法更改所有
LIA
的每个
属性,否则我将使菜单无法为知识较少的人编辑。因此,我将每个
子菜单li a
重定向到正确的锚定名称属性链接

现在,一旦我点击了一个
子菜单li a
,我将被重定向到正确的页面和正确的锚名称属性链接。但是如果
在哪里,我就不太清楚了。视口始终位于元素的上方或下方

由于某些原因,这种情况在Chrome thoe中不会发生。在Firefox、Edge和Internet Explorer中,我发现了一个奇怪的bug

所以我尝试刷新(而不是重新加载)页面,然后它就可以工作了。因此,我决定使用jQuery创建一个小脚本,使页面在每次
.load()
之后都能刷新,这就是我想到的:

$(window).load(function () {
    $('html').load();
});

现在我不确定这是解决我的问题的正确方法,还是我的脚本不正确。但这对我不起作用。我做错了什么?

所以你让没有
href
li a
用锚更改页面,并且必须重新加载才能正确定位锚?我理解对了吗

首先,我建议他们应该是
href
,因为他们不是锚,他们是链接

除此之外,根据您给出的信息(通常应该是更多信息),我猜视口所在的位置就是加载期间页面更改并将元素上移/下移之前元素所在的位置。Chrome可能比其他浏览器更晚(即加载/渲染更多内容后)对定位点进行计时

我会暂时禁用页面上任何导致DOM更改的加载,并在加载过程中移动元素来检查这一点。如果这是一个问题,那么您需要根据加载的内容来决定如何最好地处理它


希望这有帮助。

您发布的代码不足以很好地理解问题,文本也不好?我需要一个脚本,刷新(而不是重新加载)页面加载时。与文本,我们必须想象你的意思。十行代码胜过1000个单词有些问题需要更多的代码而不是文本,有些问题需要更多的文本而不是代码来解释我没有一个庞大的脚本在运行。。。只是那3行代码。不完全是。我刚才说的是href,但我想还不够清楚。我更新了我的帖子。但在加载更改之前,您有一个非常好和有用的观点。我会调查的。