这个回复是否写得正确,这是代码:
<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>
回写正确是否有正确的写作方式?
答案 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限制),返回的值必须是字符串,浏览器稍后会将其显示为警报。