html onClick打开url存储在php变量中

时间:2014-10-24 07:19:21

标签: javascript php html

以下是我的代码,我收到了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>

2 个答案:

答案 0 :(得分:1)

您正在将"个字符输出到onClick属性值中。由于您使用这些字符来分隔值,因此第一个字符在语句的中间结束脚本。

改为使用&quot;


但这是一个快速而肮脏的黑客。有更好的方法。

  • 不要尝试通过将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">

答案 1 :(得分:0)

您应该使用echo "'$a'"。主要问题是你的onclick属性中会有双引号。甚至更好window.open('<?php echo $a; ?>')