Удалите теги 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>