2010-07-06 4 views
3

Я ищу такой метод, который позволяет мне добавлять, удалять объекты DOM страницы до того, как DOM даже отображал, я имею в виду первый JS, который i включить в тег заголовка моей страницы можно подойти, найти конкретный тег и удалить его из HTML, даже до его отображения, я знаю, что вызов javascript блокируется, так как браузер будет отображать мою страницу и придет к моему javascript в голове он блокирует рендеринг, загрузку и экспрессия javascript, теперь в момент выполнения мне нужно контролировать ранее загруженный HTML, ожидающий рендеринга. Есть ли такой способ?Получить HTML-теги перед document.ready(), перед рендерингом DOM

Я пробовал использовать свойства документа, но я не получаю теги в своих js, которые появляются после этого js в html.

+0

Это может быть глупый вопрос, но ... можете ли вы объяснить, почему вы хотите удалить этот скрипт? Обычно лучшим ответом будет «Просто не ставьте скрипт на исходную страницу»! Если вы можете объяснить, почему это невозможно, и почему сценарий нужно удалить, это может предложить способ решения проблемы ... – psmears

+0

хотят реализовать библиотеку на стороне клиента js для загрузки всех этих скриптов в не- блокировка поведения, –

ответ

-1

короткий и простой ответ на этот вопрос нет, это косяк будет done

+1

Ваш ответ звучит слишком уверенно, учитывая, что это был * вы *, который разместил вопрос. – developer10

0

Вставьте JavaScript непосредственно перед </body>.

+0

спасибо mcandre, но это проблема, я хочу удалить эти теги перед визуализацией, и для этого мне нужно удалить js для запуска перед чем-либо. –

0

Вы должны быть осторожны с этим, поскольку попытка изменить DOM до его завершения вызывает проблемы в IE. В частности, в IE6 это приведет к очень недружественному сообщению об ошибке, которое после принятия вызывает отображение стандартной страницы «Эта страница не может быть отображена». Хотя эта проблема не полностью подтверждена в IE8, ее просто проглатывают.

Если возможно, я бы рекомендовал вырезать необходимые теги из html перед тем, как попасть в средство визуализации, либо через прокси, либо в расширение браузера. Если это не реально, то я не уверен, что вы можете сделать.

+0

Это означает, что нет такого способа сделать это с помощью Javascript? нет крестообразного раствора? :( –

+0

Не действительно, вы не можете получить доступ и изменить DOM, если он не был создан. DOMContentLoaded - это, вероятно, событие, которое вы хотите посмотреть, но я не уверен, какие браузеры он в настоящее время поддерживает. –

+0

Я пробовал это, не повезло, он также не запускается до рендеринга –

0

Возможно, другой способ атаковать проблему - с другой стороны. Начните со всего, что скрыто, а затем покажите только нужные вам элементы после загрузки страницы. Не уверен, что ваш проблемный домен позволяет это, но это может сработать для вас.

+0

Да, это было бы решением, но то, что я хочу удалить, - это еще один javascript, я не буду его загружать, и это казалось возможным, если бы я мог просто удалил тег dom перед рендерингом этого тега, таким образом браузер заблокирует рендеринг, прочитает мой js удаления и удалит этот тег сценария перед его загрузкой. но шансы сейчас довольно низкие –

+0

Вы тоже не захотите использовать этот метод. Если вы пытаетесь сделать прогрессивное улучшение, и вы спрячете все с CSS, ваша страница будет хорошо смотреться на тех броузерах, у которых есть ecmascript, но не те, которые этого не делают (они все равно будут скрыты). – John

0

Итак, вы хотите предотвратить выполнение скрипта на странице? Если вы можете поставить свой собственный сценарий, где когда-либо вы хотите, вы можете попробовать

<script> 
document.write("<!--"); 
</script> 
<script>// offending script</script> 
<script> 
document.write("-->"); 
</script> 

(Предупреждение:., Что путь лежит безумие)

+0

ну, что я хочу, полностью останавливает этот скрипт от загрузки. –

+0

omg это умный, смешной и страшный. :-), но это также не помешает загрузке скрипта? – vidstige

0

Просто запустите тег сценария внутри тега noscript, а затем выведите его, если это необходимо, то независимо от того, включен ли javascript или нет, скрипт не будет выполняться до тех пор, пока он не будет вынут из тега noscript. Примечание: Вы должны помещать javascript в тег комментария, чтобы браузеры, которые не поддерживают тег noscript, все равно выполняют его.

+1

Браузеры, которые не поддерживают тег