Joh*_* Au 0 javascript php window.open
我点击它时当前有一个按钮它应该打开一个新窗口,但是我收到了这个错误:Uncaught SyntaxError: Unexpected token :.我在用window.open()
$url = "http://www.google.com";
$button .=
'<input type="button" value="Print Timetable" class="printButton" onclick="window.open('.$url.');"/>';
Run Code Online (Sandbox Code Playgroud)
我注意到当我使用没有参数的window.open()时它可以工作,但是当我传入$url变量时,所有地狱都会松动.我得到语法错误.我试过http://www.google.com,www.google.com和google.com都无济于事!
感谢您的帮助!
因为您缺少封装url字符串所需的单引号.
$url = "http://www.google.com";
$button .=
'<input type="button" value="Print Timetable" class="printButton" onclick="window.open(\''.$url.'\');"/>';
Run Code Online (Sandbox Code Playgroud)
你正在添加一层字符串封装.将字符串值传递给函数时,它必须是引号,因为它是一个字符串.
doSomething('http://www.ibm.com/');
Run Code Online (Sandbox Code Playgroud)
当您在html中内联时,需要将javascript封装在双引号中,以便它成为
onclick="doSomething('http://www.ibm.com/');";
Run Code Online (Sandbox Code Playgroud)
然后,如果您希望PHP回显它,或将其指定为变量,您需要将所有内容括在引号中,这样您就可以
<?php
//encapsulate in double quotes and escape double quotes
echo " onclick=\"doSomething('http://www.ibm.com/');\" ";
//encapsulate in single quotes and escape single quotes
echo ' onclick="doSomething(\'http://www.ibm.com/\'); ';
?>
Run Code Online (Sandbox Code Playgroud)
无论你如何分解,你都需要将3个字符串封装在一起,所以你必须找到一种方法来区分JS中使用的引号和PHP中使用的引号.
否则你会遇到问题.
<?php
//Houston We have a problem!
echo " onclick="doSomething('http://www.ibm.com/');\" ";
^ ^ ^ ^
Open Quote Close Quote Open Quote Close Quote
?>
Run Code Online (Sandbox Code Playgroud)