我正在尝试添加PHP代码以在JavaScript内部回显文本,但是当我尝试执行该代码时,它没有回显0的文本
<script>
window.onload = function(){
<?php if (empty($dark_mode)){ echo '$('*').toggleClass("light") document.getElementById("*").classList.remove("dark");';}else{ echo '$('*').toggleClass("light") document.getElementById("*").classList.remove("light");';} ?>
};
</script>
答案 0 :(得分:1)
引号中存在语法错误-多个单引号没有被转义,因此PHP突然得到了意外的...reference.child("users/$uidref").child("file")
//You can also "users/$uidref/file"
。
*
您可以通过几种方法解决此问题,一种方法是使用双引号或转义单引号,但是您可以通过在PHP中设置一个变量并使用该变量而不是在内部做相同的事情来简化此过程。条件。
<script>
window.onload = function(){
<?php if (empty($dark_mode)){ echo '$('*').toggleClass("light")
// -----------------------------------^^^^^^^ See the mismatch of quotes here
document.getElementById("*").classList.remove("dark");';}else{ echo '$('*').toggleClass("light") document.getElementById("*").classList.remove("light");';} ?>
};
</script>
答案 1 :(得分:0)
我希望Heredoc语法回显多行动态JavaScript / jQuery代码。您不需要转义任何引号,并且更容易阅读,尤其是当您有数十行代码时。
$if_script_code = <<<if_script
Here goes the script code
for better readability
and without the need to
escape a ton of quotes.
if_script;
$else_script_code = <<<else_script
more script code
here...
else_script;
if ($my_condition === TRUE) {
$script_code = $if_script_code;
}
else {
$script_code = $else_script_code;
}
?>
<script>
window.onload = function(){<?=$script_code?>;}
</script>
答案 2 :(得分:-1)
我过去也遇到过同样的问题,我也确实使用php来打印所有带有php vars的javascript,在您的情况下,很可能是这样:
<?php
echo "<script>";
echo "window.onload = function(){";
if (empty($dark_mode)){
echo "$('*').toggleClass('light') document.getElementById('*').classList.remove('dark');";
}else{
echo "$('*').toggleClass('light') document.getElementById('*').classList.remove('light');";
}
回显“”; ?>