У меня есть поле 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());
}
});
});
})();
Просьба пояснить, что вы подразумеваете под последней строкой. ... 'Но тег