【问题标题】:In javascript, redirect page which sends data to the server before transitioning to a new page在javascript中,重定向页面,在转换到新页面之前将数据发送到服务器
【发布时间】:2017-05-19 12:15:18
【问题描述】:

我正在尝试创建一个重定向页面,该页面在转换到新页面之前将数据发送到服务器,使用类似于以下代码的 javascript。

<body>

<script type="text/javascript">

****
light transaction about cookie
****

document.createElement("img").setAttribute("src", "server.php?param1=cookiedata");

location.href = "new_page.html";

</script>

</body>

但是,在重定向到“new_page.html”之前,有时

document.createElement("img").setAttribute("src","server.php?param1=cookiedata");

没有被调用,也无法向“server.php”发送数据。

重定向时间短是不是有问题?

你能告诉我怎么解决吗?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    问题是有时在重定向发生之前没有发送加载源材料的请求。

    解决方案很简单:您可以使用onload 事件添加一个处理程序,该处理程序在img 加载后调用。

    像这样的

    function refirectAfterTransmit() {
      window.location.href = "/new_page.html";
    }
    
    var img = document.createElement("img");
    img.addEventListener("load", refirectAfterTransmit);
    img.src = "server.php?param1=cookiedata";
    document.appendChild(img)
    

    如果这有帮助,请告诉我!

    编辑:感谢Jaromanda X cmets

    【讨论】:

    • .setAttribute("onload", refirectAfterTransmit); 这不是有效的 javascript!
    • 因此,我说的是“类似这样的东西”,更多的是在那里发生的伪代码
    • 很公平......我从没想过使用伪代码作为答案:p
    • 我自己会使用 img.src =img.addEventListener('load', ... :p
    • 这将是一个更漂亮的解决方案,是的
    【解决方案2】:

    看看这个: Wait for image to be loaded before going on

    您可能想要等待“图像”被加载。那么您确定请求已发送。

    <body>
    
    <script type="text/javascript">
    
    ****
    light transaction about cookie
    ****
    
    function loadSprite(src, callback) {
        var sprite = new Image();
        sprite.onload = callback;
        sprite.src = src;
    }
    
    
    loadSprite('server.php?param1=cookiedata', function() {
        location.href = "new_page.html";
    });
    
    
    
    </script>
    
    </body>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多