Как вставить код JavaScript с помощью JQuery? - PullRequest
4 голосов
/ 16 сентября 2009



<div id="example">

</div>


<script type="text/javascript">

  function insert() {
     var data = '<script type="text/javascript">  function test() {    a = 5;   }<\/script>';  
     $("#example").append(data);
  } 

  function get() {
     var content = $("#example").html();
     alert(content);
  }


</script>


<a href="#" onclick="insert();">INSERT</a>

<a href="#" onclick="get();">GET</a>


</body>
</html>

что я хочу сделать:

когда я нажимаю на кнопку вставки, я хочу вставить этот код в пример div:

<script type="text/javascript">  function test() {    a = 5;   }<\/script>

когда я нажимаю на кнопку get, я хочу получить тот код, который я вставил туда.

но когда я нажимаю на вставку, а затем на get, нет кода .. где проблема? спасибо

Ответы [ 3 ]

4 голосов
/ 16 сентября 2009

Согласно вашему комментарию к Адаму Беллэру, вы хотите, чтобы тег сценария отображался как обычный текст. Что вы хотите сделать, так это кодировать текст с сущностями HTML , это не позволит браузеру обрабатывать его как обычный HTML.

   var enc = $('<div/>').text('<script type="text/javascript">  function test() {    a = 5;   }<\/script>').html();
   $("#example").append(enc);
1 голос
/ 17 сентября 2009

Это работает:

function insert() {
 var data = '<script type="text/javascript">  function test() {    a = 5;   }<\/script>';  
 $('#example').text(data);
}

function get() {
 var content = $('#example').text(); 
 alert(content);
}
0 голосов
/ 16 сентября 2009

Проверяете ли вы код, просматривая живую версию DOM, используя такой инструмент, как Firebug? Если вы ожидаете увидеть код, отображаемый в обычном окне браузера, вы этого не сделаете, поскольку теги сценария фактически анализируются при вставке, а теги сценария не являются видимыми элементами на странице HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...