以下是我的代码,我收到 Uncaught SyntaxError: Unexpected token }
,但我在代码中没有看到任何 }
。 window.open
需要引号中的 url,我尝试了单引号和双引号的不同组合,但不起作用,也无法转义 echo 中的双引号。请帮助
谢谢..
<?php
$a = "https://www.google.co.in/";
?>
<html>
<body>
<form>
<input type="button" width="100" onClick="window.open(<?php echo '"'; echo $a; echo '"'; ?>)" height="100%" value="Edit Record"/>
</form>
</body>
</html>
最佳答案
您正在将 "
字符输出到 onClick
属性值中。由于您使用这些字符来分隔值,因此第一个字符会在语句中间结束脚本.
使用 "
代替。
但这是一个快速而肮脏的黑客行为。有更好的方法。
- 不要尝试通过将 PHP 字符串混合在一起来生成 JavaScript 字符串。使用强大的转义函数。
json_encode
将为您提供任何简单数据结构的 JavaScript 文字(包括需要的引号字符)。 - 不要尝试通过将字符串混合在一起来生成 HTML。使用强大的转义函数。
htmlspecialchars
将满足您的所有需求。
例如:
onClick="window.open(<?php echo htmlspecialchars(json_encode($a)); ?>)"
<小时/>
但是当 HTML 可以的时候不要使用 JavaScript:
<a href="<?php echo htmlspecialchars($a); ?>" target="_blank">
关于javascript - html onClick 打开存储在 php 变量中的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26543224/