Вставить элементы в <script>положение тега - PullRequest
5 голосов
/ 07 мая 2010

Когда сайты предоставляют вам некоторый JavaScript, который вы вставляете в веб-страницу для вставки контента в эту позицию, как скрипт определяет свою текущую позицию в DOM?Без использования document.write?

Спасибо,

Ник

Ответы [ 2 ]

5 голосов
/ 07 мая 2010

Во время включения скрипта определенно, что последний <script> на странице будет текущим;остальная часть страницы еще не была проанализирована.Итак:

<script type="text/javascript">
    var scripts= document.getElementsByTagName('script');
    var this_script= scripts[scripts.length-1];

    // Something that happens later...
    //
    setTimeout(function() {
        var div= document.createElement('div');
        div.appendChild(document.createTextNode('Hello!'));
        this_script.parentNode.insertBefore(div, this_script);
    }, 5000);
</script>

Это верно, если тег скрипта не использует defer или HTML5 async.

0 голосов
/ 07 мая 2010

Я не понимаю, почему такие скрипты заботятся об их расположении в DOM, но я думаю, что это возможно определить. Возможно, используйте что-то вроде document.scripts , чтобы начать поиск.

...