我有一个由一些PHP生成的JS函数,函数调用如下:
onClick=openPopup('".$row['imgname']."','".$row['adtitle']."','".$row['adviews']."')
现在这可行,除非$ row ['adtitle']的值包含JS关键字。将我的代码中的错误引起我注意的是“这个”这个词。有没有办法逃避这些值,我无法弄清楚,因为我已经在这次调用中使用了很多封装。
提前致谢。
编辑:
openPopup('efc86f7223790e91f423ef1b73278435.jpg','THIS IS A TEST ADVERT 12345678','2')
此通话不起作用。
openPopup('eada91a6c1197d2f2320e59f45d8ca6b.jpg','is a test','2')
不过这个确实有效..
我唯一可以想象的是THIS
,就像查看来源时一样,THIS
后面的文字高度不同。
编辑2:这是我的功能:
function openPopup(imgname,adtitle,adviews) {
document.getElementById('popup').style.display = 'block';
document.getElementById('delimg').src = 'imgstore/' + imgname;
document.getElementById('delAdTitle').innerHTML = adtitle;
document.getElementById('delAdViews').innerHTML = adviews;
document.getElementById('confirm').onclick = function() {
location.href = '?delete=1&id=' + imgname;
}
}
答案 0 :(得分:2)
也许这只是一个正确格式化的问题:
$onclick = 'openPopup('.json_encode($row['imgname']).','.json_encode($row['adtitle']).','.json_encode($row['adviews']).')';
echo 'onClick="'.htmlspecialchars($onclick).'"';
请注意,我们在此处滥用json_encode
来引用JavaScript字符串文字。虽然我们不应该严格地说JSON strings are not a subset of JavaScript strings。