如何防止window.onload重复自身

时间:2013-12-30 19:17:18

标签: javascript php html dom onload

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

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

当我加载页面时,URL会发生变化,但会反复重复,直到浏览器崩溃为止。我只是想知道是否有办法只执行一次。

5 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

在网址上添加一个简单的标记,如下所示:window.location = "?test=test&second=true";

答案 2 :(得分:0)

正如How can I get query string values in JavaScript?

中所述

编写一个函数来检查JS GetQueryStringParams()

中的URL参数

然后正如其他人所建议的,在重新加载时传递一个发送参数

window.location =“?test = test& second = true”;

使用JS中的函数来检查你是否有第二个URL查询字符串,如果它没有,那么重新加载页面

答案 3 :(得分:0)

如果你不想使用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;?>

但你真的应该研究一下AJAX,尝试使用像jQuery这样的JS框架来帮助你完成这个过程:http://api.jquery.com/jquery.ajax/

答案 4 :(得分:0)

如果你想传递变量,请执行以下操作:

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

就是这样。