我有以下代码:
<head>
<title>Quote Marks</title>
</head>
<body>
<?php
$variable1 = "'QUOTE' \" 'MARKS'";
?>
<button onclick="text( '<?php echo addslashes($variable1); ?>' );">click me</button>
<script type="text/javascript">
function text(texto){
if( confirm( texto ) ) {
alert("thanks!");
}
}
</script>
</body>
它不起作用!我的引号有问题...当我点击按钮时,我希望对话框显示"$variable1"
中包含所有引号的文字......
答案 0 :(得分:2)
您需要制作数据:
json_encode
代替'
,addslashes
和'
。htmlspecialchars
因此:
<button
onclick="text(<?php echo htmlspecialchars(json_encode($variable1)); ?>);">
根据经验,在HTML引号中处理PHP引号内的PHP引用比较值得。通常可以通过将JS保存在<script>
元素而不是内部属性值中来消除至少一个级别的嵌套。
<script>
function myFunction() {
text(<?php echo json_encode($variable1); ?>);
}
document.querySelector('button').addEventListener('click', myFunction);
</script>