Как активировать javascript-тег, полученный из iframe?

У меня есть редактор форматированного текста в Javascript, в котором я хочу иметь возможность вводить встроенный виджет в тег Javascript. То есть:

<script src = "http://www.mydomain.com/script.aspx?id=123" type = "text/javascript"></script>

Все еще используя JS, я перемещаю html-контент из iframe в DIV на странице:

<script>
    function copyRtfToDiv()
    {
        myiframe = document.getElementById('myiframe');
        postDiv = document.getElementById('blogPostDiv');
        content = myiframe.contentWindow.document.body.innerHTML;
        postDiv.innerHTML = content;
    }
</script>

Когда контент копируется в DIV, скрипт не вызывается. Есть ли способ запустить этот скрипт?

Итак, вы хотите ввести тег <script> в свой редактор, который находится в iframe или содержит iframe, а затем взять его и добавить на родительскую страницу?

lincolnk 28.10.2010 00:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
754
1

Ответы 1

Во-первых, похоже, вы копируете код JavaScript в теги DIV. На самом деле это не должно сработать, так как он будет обрабатывать его как обычный текст. Чтобы проиллюстрировать это, сравните эти два блока кода. Первый - это DIV:

<div>alert('hello!');</div>

И это будет выглядеть на странице примерно так:

предупреждение ('привет!');

Второй блок кода - это скрипт:

<script>alert('hello!');</script>

Откроется окно сообщения с текстом «привет!» И будет ждать, пока пользователь не нажмет «ОК». Но кроме этого, на странице ничего не будет отображаться.

Вы стремитесь ко второму варианту - тому, который фактически запускает код JavaScript, расположенный между тегами.

Я бы рекомендовал обернуть скрипт, который вы хотите вызвать, в функцию и вызывать эту функцию по имени. Допустим, у вас есть в IFRAME HTML-документ, тело которого выглядит примерно так:

<div id='jscode'>
   function mycode() {
       // This is some code!
       alert('Hello there!'); 
   }
</div>

Затем вы можете в родительском документе IFRAME (содержащем тег <iframe>) использовать следующий код в родительском элементе, чтобы импортировать его в родительский DOM:

function copyRtfToDiv()
{
    myiframe = document.getElementById('myiframe');
    content = myiframe.contentWindow.document.GetElementById('jscode').innerHTML;
    newscripttag = document.createElement('script');
    newscripttag.innerHTML = content;
    mycode();
}

Я понятия не имею, почему вы захотите сделать что-то подобное - что по сути является изменением родительского кода JavaScript для жизни в DOM вашего документа; Есть способы сделать это лучше, не в последнюю очередь - использовать другой редактор, который можно просто вызвать извне. Например, tinyMCE и FCKEditor.

Удачи!

Другие вопросы по теме