我有一个愚蠢的问题,使用 Jquery-ajax 将数据从 DB 加载到 textarea。
问题是,当我尝试将数据(通过 PHP 中的 echo json_encode() 从 TEXT utf8_general_ci 中的数据库发送)加载到 textarea 中时,我不能使用 htmlentities(因为在 textarea 中显示字符而不是文本)如果我把数据库中的 javascript,然后加载到 textarea,此加载更正字符,但是..执行代码并显示 javascript 的结果。
例子:
<?php
if (!empty($_GET['json'])) {
$array = array(
'text1' => 'hello world!',
'text2' => '<script>alert("bu")</script>',
);
echo json_encode($array); die();
}
?>
<script type="text/javascript" src="jquery-1.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url: "?json=true",
type: "POST",
dataType: "json",
success: function(data){
$('textarea[name=area]').val(data.text2);
}
});
});
</script>
<textarea name="area" cols="80" rows="6"></textarea>
我尝试使用 .val()、.html()、data.text2.tostring()(失败),但没有任何效果,总是执行代码。我认为这是一个简单的失败,但如果没有找到解决方案我需要在 textarea 中显示正确的代码并且没有特殊字符。有什么想法吗?
最佳答案
TEXTAREA 没有值(value)。它具有标签之间的数据。尝试使用:
$('textarea[name=area]').html(data.text2);
关于javascript - 在文本区域中将文本数据作为 JSON 加载,并防止执行此操作(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201134/