Я делаю веб-редактор с текстовым полем, который возвращает код пользователя и iframe, который показывает в реальном времени html. У меня есть событие, которое прослушивает пользователей keyup, это код, который я использую для выполнения javascript на iframe
var iframe = $("#iframeresults").contents()
$("#wrapper").on("paste keyup", function(){
setTimeout(function(){
iframe.find("body").html(webEditor.getHtml());
iframe.find("style").html(webEditor.getCss());
iframe.find("script").remove()
var script = document.createElement("script")
script.text = webEditor.getJS()
iframe.find("head")[0].appendChild(script)
},800)
});
Это прекрасно работает, но я должен удалить и создать тег скрипта каждый раз, когда пользователь нажимает клавишу, на мой вопрос, есть ли другой способ сделать это, не касаясь dom?
Я пробовал эту ссылку
Но если я использую eval, а код содержит sintax erros, это останавливается
У вас всегда может существовать сценарий сценария (с пустым атрибутом src), внутри импортируемой страницы iframe, а затем просто увеличивать тег, когда вы обычно добавляли весь узел. технически вы все еще меняете дом, но так как сам тег жил там с момента рождения страницы, все беспорядок, который вы пытаетесь избежать, следует легко избежать.