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 window.location在页面加载完成后未导航到正确位置_Javascript_Php - Fatal编程技术网

Javascript window.location在页面加载完成后未导航到正确位置

Javascript window.location在页面加载完成后未导航到正确位置,javascript,php,Javascript,Php,当我的网站加载下面的javascript时,它会导航到正确的锚定标记,但是当页面的其余部分(通过javascript+ajax加载其他内容)加载时,页面会在一瞬间被向下推到锚定标记之外。在加载所有其他php+javascript之后,是否仍有调用window.location(下面的javascript)的方法 <script> window.location = (""+window.location).replace(/#[A-Za-z0-9_]*$/,'')+"#<?ph

当我的网站加载下面的javascript时,它会导航到正确的锚定标记,但是当页面的其余部分(通过javascript+ajax加载其他内容)加载时,页面会在一瞬间被向下推到锚定标记之外。在加载所有其他php+javascript之后,是否仍有调用window.location(下面的javascript)的方法

<script>
window.location = (""+window.location).replace(/#[A-Za-z0-9_]*$/,'')+"#<?php echo $windowlocation; ?>"
</script>

window.location=(“”+window.location)。替换(/#[A-Za-z0-9#]*$/,“”)+“#”
这些解决方案应该可以工作:

甚至

window.onload = function ...
这些解决办法应该有效:

甚至

window.onload = function ...

如果您是通过ajax加载的,那么您大概可以使用回调方法和某种方法来检查它们何时全部完成

var sectionsLoaded = 0;
var numSections = 1; // number of sections you are loading

$.ajax({ 
    ...
    complete: function(){
        doneLoading();     
    }
});

function doneLoading(){
     sectionsLoaded++;
     if(sectionsLoaded == numSections) {
        //Do something
     }
}

希望这能回答你的问题,或者至少在某种程度上是有用的。同样要明确的是,PHP没有加载。它在后端执行,对前端不做任何操作。(您可能已经知道这一点,只是您的问题的措辞有点混乱)

如果您是通过ajax加载的,那么您可能可以使用回调方法和某种方法来检查它们何时全部完成

var sectionsLoaded = 0;
var numSections = 1; // number of sections you are loading

$.ajax({ 
    ...
    complete: function(){
        doneLoading();     
    }
});

function doneLoading(){
     sectionsLoaded++;
     if(sectionsLoaded == numSections) {
        //Do something
     }
}

希望这能回答你的问题,或者至少在某种程度上是有用的。同样要明确的是,PHP没有加载。它在后端执行,对前端不做任何操作。(您可能已经知道这一点,只是您的问题的措辞有点混乱)

如果将其放入
$(document).ready(函数(){//your code})在DOM准备好后调用它。让我试一试。谢谢我想我试过了,但仍然遇到了同样的问题。$(window).load(function(){//这将在加载整个页面后触发,包括图像});雷德:还是一样的结果。它滚动到适当的锚,加载额外的内容,并将其推到锚标记之外。@user2744722同意。你需要窗口加载函数。如果你把它放在
$(document.ready(函数(){//your code})中会怎么样在DOM准备好后调用它。让我试一试。谢谢我想我试过了,但仍然遇到了同样的问题。$(window).load(function(){//这将在加载整个页面后触发,包括图像});雷德:还是一样的结果。它滚动到适当的锚,加载额外的内容,并将其推到锚标记之外。@user2744722同意。你需要窗口加载功能。