0

这个返回值写对了吗,代码如下:

<script type='text/javascript'>
    //<![CDATA[ 
    $(window).load(function(){
    $(window).on('beforeunload', function(){
    return 
    <?php

    // Log out when browser is closed
    echo "  location.href=\"/logout.php?task=EndLive&webcam_id=".$_GET['webcam_id']."\"";

    ?>
    ;
    });
    });//]]>  
</script>  

退货是否正确写入是否有正确的写入方法?

4

2 回答 2

1

没有正确编写 - 我可以这样说而不关心 PHP 的实际结果是什么。(虽然,出于 HTML/JavaScript 相关问题的考虑,您应该发布发送给客户端的实际HTML/JS。)

问题是这return是一个受限制的生产,并且会“过早地插入一个隐式分号”。

也就是说,这两个是不同的:

function f() {
  return "x" // same line
}

function g() { 
  return    // newline after return - ASI kicks in!
  "x"       // this line is NEVER EXECTURED
}

f() // -> "x"
g() // -> undefined

充其量 PHP 代码将生成类似于后者的内容,因此是不正确的。return语句将在运行之前终止函数location.href- 浏览器位置不会改变!

我首先将return语句移动到函数的末尾并提供适当的值。(另外,如果我记得,IE 有怪癖,在这种情况下应该使用 event.value 而没有返回?YMMV。)

当然,即使解决了上述语义语法问题,也可能存在其他问题 - 但一次一个问题:)

于 2013-09-15T16:59:25.143 回答
0

它不起作用,因为在 beforeunload 中,您不能将用户重定向到另一个页面(javascript 限制),并且返回的值必须是浏览器稍后将显示为警报的字符串。

于 2013-09-15T17:08:57.400 回答