Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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.onload自身重复_Javascript_Php_Html_Dom_Onload - Fatal编程技术网

Javascript 如何防止window.onload自身重复

Javascript 如何防止window.onload自身重复,javascript,php,html,dom,onload,Javascript,Php,Html,Dom,Onload,我正在尝试执行一个js操作,该操作会自动将信息发送到URL,以便将来与php一起使用。为此,我在窗口对象上添加了一个“onload”事件,并修改了侦听器中的URL。到目前为止,情况是这样的: window.addEventListener("load", function() { window.location = "?test=test"; }, false); 当我加载页面时,URL会发生变化,但这会一次又一次地重复,直到浏览器崩溃。我只是想知道是否有一种方法可以只执行一次。在重定

我正在尝试执行一个js操作,该操作会自动将信息发送到URL,以便将来与php一起使用。为此,我在窗口对象上添加了一个“onload”事件,并修改了侦听器中的URL。到目前为止,情况是这样的:

window.addEventListener("load", function() {
    window.location = "?test=test";
}, false);

当我加载页面时,URL会发生变化,但这会一次又一次地重复,直到浏览器崩溃。我只是想知道是否有一种方法可以只执行一次。

在重定向之前,检查您是否已经在该页面上。

在URL上添加一个简单的标志,如:
window.location=“?test=test&second=true”

如中所示

编写一个函数来检查在JS GetQueryStringParams()中获取URL参数

然后按照其他人的建议,在重新加载时传入一个send参数

window.location=“?测试=测试&秒=真”


使用JS中的函数检查是否有URL查询字符串,如果没有URL查询字符串,则重新加载页面

如果不想使用AJAX,也不想编写JS函数来解析查询字符串,为什么不简单:

<?php if(!isset($_GET['test'])): ?>
<script>
   window.addEventListener("load", function() {
       window.location = "?test=test";
   }, false);
</script>
<?php else: ?>

 <!--No JS written on the page, so no redirect -->

<?php endif;?>

addEventListener(“加载”,函数(){
window.location=“?测试=测试”;
},假);

但您确实应该研究AJAX,尝试使用一些JS框架(如jQuery)来帮助您:如果要传递变量,请执行以下操作:

<?php
    if(!isset($_GET['page'])){ //this line check if the variable field is available 
    $a = "Blank";
    }else{
    $a = $_GET['page'];
    }
?>


就是这样。

您可以在运行
onLoad
方法后删除它,如下所示:

<script>
function doLoadStuff()
{
    doSomeStuff();

    //Clear onLoad contents
    body.onLoad = function() {};
}
</script>
<body onLoad="doLoadStuff();">MyContent</body>

函数doLoadStuff()
{
doSomeStuff();
//清除加载内容
body.onLoad=函数(){};
}
霉菌含量

将信息发送到url,以便将来与php一起使用。
您到底想实现什么?我肯定还有另一种更好的方法,比在同一页面上继续重定向更好。不确定您是否可以,您必须添加一个检查,以查看是否设置了url查询等,如果没有,则重新加载其他内容,例如检查您的查询中是否有“测试”值等,但不安全等,如果你想解释一下你试图实现的目标可能更容易帮助你,你不认为这个处理程序会进入一个无限循环吗。执行window.onload的那一刻,您正在重新加载页面,这将调用window.onload。但是如何阻止页面一次又一次地重新加载呢?这就是我试图解释的…@DamienPirsy我想通过使用URL sends和$_GET将信息从JS传输到PHP,然后用PHP读取一个包含这些刚刚发送的信息的文本文件,然后将其发送回JS并用于其他内容。当然,如果你有更好的方法,如果你告诉我就好了,因为我不认为这是最好的方法…好主意!非常感谢。不要仅仅发布代码,还要添加关于如何解决问题的解释。