繁体   English   中英

由 PHP 回显时 Onclick 确认()不起作用

[英]Onclick confirm() not working when echoed by PHP

我正在尝试通过下面的 PHP 回显使用 JavaScript 确认()框,但它不起作用。

echo '<a href="http://sdfsdfs.com?keepThis=true&TB_iframe=true&height=10&width=1200&x=2342342&enter_other_room=2" class="box" TARGET="_self" oncontextmenu="return false;" onclick="confirm(\"Are you sure you want to enter the users\'s Room?\");\">User\'s Room</a>';

我在这里缺少什么?

你不能在 HTML 属性中转义引号,所以onclick="confirm(\\"...\\");" 不会工作。 在字符串周围加上单引号。 由于它位于 PHP 单引号字符串中,因此您需要为 PHP 转义它们。

由于字符串中包含撇号,因此您需要为 Javascript 转义它。 您必须将反斜杠加倍才能在 PHP 字符串中添加一个文字反斜杠。 还有第三个反斜杠可以为 PHP 转义它。

echo '<a href="http://sdfsdfs.com?keepThis=true&TB_iframe=true&height=10&width=1200&x=2342342&enter_other_room=2" class="box" TARGET="_self" oncontextmenu="return false;" onclick="confirm(\'Are you sure you want to enter the users\\\'s Room?\');\">User\'s Room</a>';

js CONFIRM() 函数返回真或假。 您不是在查看用户的回答。

这是一个通用函数,它将询问您的问题并将用户发送到您的 URL。 把它放在你的 HTML 中。

<script>
function myChoice(question,location) {
    var answer = confirm(question);
    if (answer) {
        window.location.href=location;
    }
    else {
        alert("you're staying here!");
    }
}
</script>

您仍然可以使用 PHP echo() 来生成问题和 URL,重用相同的函数。

echo '
<a href="#" class="box" TARGET="_self" oncontextmenu="return false;" 
onclick="myChoice(\'Are you sure you want to enter the users Room?\',\'http://sdfsdfs.com?keepThis=true&TB_iframe=true&height=10&width=1200&x=2342342&enter_other_room=2\');">Users Room</a>';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM