javascript - 在文本区域中将文本数据作为 JSON 加载,并防止执行此操作(javascript)

标签 javascript php jquery

我有一个愚蠢的问题,使用 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/

相关文章:

javascript - 如何将 DRY 原则应用于 JavaScript 和查询

javascript - 编写一个函数来设置另一个函数中的一些但不一定是所有参数

javascript - 如何在Vue中使用 "v-for"语句为 "v-if"元素创建动画?

php - 仅在第一页加载时显示消息

javascript - Bootstrap - 'data-original-title=' 在我尝试创建工具提示时显示为灰色

jquery - 如何选择 div 内的图像以更改其来源?

javascript - setTimeout(function() {doSth();}, 3) 与 setTimeout(doSth, 3)?

php - header 位置无法正常工作

php - 如何从 PHP 返回 JSON 对象以从 Android 应用程序中读取

javascript - Django session 与浏览器本地存储