Javascript 如何防止window.onload自身重复
我正在尝试执行一个js操作,该操作会自动将信息发送到URL,以便将来与php一起使用。为此,我在窗口对象上添加了一个“onload”事件,并修改了侦听器中的URL。到目前为止,情况是这样的: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会发生变化,但这会一次又一次地重复,直到浏览器崩溃。我只是想知道是否有一种方法可以只执行一次。在重定
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并用于其他内容。当然,如果你有更好的方法,如果你告诉我就好了,因为我不认为这是最好的方法…好主意!非常感谢。不要仅仅发布代码,还要添加关于如何解决问题的解释。