Удалите теги JavaScript из заголовка, используя JavaScript

Предположим, у меня есть главная страница, которая использует объект iframe в качестве буфера для загрузки внешней страницы из того же домена (по соображениям безопасности). Я выбрал этот метод, потому что XMLHttpRequest не может анализировать строковое внешнее содержимое xhtml во всех браузерах.

После того, как содержимое было загружено в iframe, я "краду" его содержимое с помощью свойства "contentDocument", а затем добавляю все стили css и теги script в заголовок родительского элемента и, в конце концов, удаляю iframe (обратите внимание, что CSS и сценарии встроены во втором документе, так что никаких внешних ссылок вообще).

Теперь все отлично работает - я могу вызывать новые функции javascript и css.

У меня вопрос: я могу управлять удалением недавно добавленных стилей CSS, но с Javascript не работает. Есть ли решение, чтобы удалить вновь добавленные теги сценария заголовка из того же документа?

Я даже пытался в отчаянии (CSS исчезает, Javascript все еще остается...)

    function emptyheader()
    {
        /* var container = document.getElementById("container"); */

        var header = document.getElementsByTagName('head')[0];  

        /* styles = header.getElementsByTagName('style'); */
        /* scripts = header.getElementsByTagName('script'); */

          while(header.hasChildNodes())
          header.removeChild(header.firstChild);    
     }

1 ответ

Я не берег, я понимаю, что вы имеете в виду. Но вот пример того, как вы можете добавить, а затем удалить скрипт (насколько я знаю, это нормально - добавить тег скрипта в тело).

<script>
function addAndRemoveScript() {
    var a = document.createElement("script");
    a.src = "yourscript.js";
    document.body.appendChild(a);
    document.body.removeChild(document.body.getElementsByTagName("script")[0])
    document.body.removeChild(document.body.getElementsByTagName("script")[0])
}
window.onload = addAndRemoveScript();
</script>
Другие вопросы по тегам