2013-06-30 4 views
0

У меня есть поле textarea, где пользователь вводит HTML и выводит его в элемент body iframe.JavaScript не вводится в iframe

Это прекрасно работает с помощью большинства HTML тегов, но если вы используете <script> тег (для того, чтобы добавить JavaScript), то script элемент не получает переданы в iframe.

Например, я должен быть в состоянии типа следующее в textarea:

<script> 
    function test() { 
     alert('test'); 
    } 
</script> 
<button onclick="test()">test</button> 

Кнопка добавляется к iframe, но так как script элемент, по-видимому, не, нажав на кнопку не сгореть alert() ,

Для этого необходимо объявить alert() на кнопке, а не на использовании функции, описанной в предписании; эта работа вокруг показана ниже:

<button onclick="alert('test')">test</button>

Однако это только позволяет одному яваскрипт команды (в то время как пользователь может захотеть использовать функцию с несколькими командами).

Вы можете увидеть страницу here

JavaScript, чтобы заполнить содержимое IFrame является:

(function() { 
    $('.grid').height($(window).height()); 
    var frame = $('iframe'), 
     contents = frame.contents(), 
     body = contents.find('body'), 
     styleTag = contents.find('head') 
      .append('<style></style>') 
      .children('style'); 
    $('textarea').focus(function() { 
     var $this = $(this); 
     $this.keyup(function() { 
      if ($this.attr('id') === 'html') { 
       body.html($this.val()); 
      } else { 
       styleTag.text($this.val()); 
      } 
     }); 
    }); 
})(); 
+0

Просьба пояснить, что вы подразумеваете под последней строкой. ... 'Но тег

Смежные вопросы