这个返回是否正确写入Javascript

时间:2013-09-15 16:55:25

标签: javascript

这个回复是否写得正确,这是代码:

<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>  

回写正确是否有正确的写作方式?

2 个答案:

答案 0 :(得分: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

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

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

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

答案 1 :(得分:0)

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