jQuery & document.write - PullRequest
       29

jQuery & document.write

3 голосов
/ 08 ноября 2011

У меня есть следующий скрипт:

<script type="text/javascript">
$(document).ready(function(){ 
    document.write("<script type=\"text/javascript\" src=\"http://site.com/script.js\"><\/script>");
});
</script>

Когда я помещаю это на страницу, он перенаправляет в скрипт, который мне не нужен.

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

Я хочу поместить его на страницу, где я размещаю этот скрипт.

Я делаю это так, чтобы скрипт, вызываемый им, в основном загружался на месте сразу после загрузки страницы, так как в настоящее время этот скрипт вызывает задержку страницы во время загрузки.

Спасибо.

Ответы [ 5 ]

9 голосов
/ 08 ноября 2011

Попробуйте:

$(document).ready(function(){ 
    $('body').append("<script type=\"text/javascript\" src=\"http://site.com/script.js\"><\/script>");
});

document.write будет добавлять к документу при вызове до загрузки документа, но после этого он заменит существующее содержимое.

5 голосов
/ 08 ноября 2011

Попробуйте это:

$(function() {

    $.getScript("http://site.com/script.js");
});

$. GetScript также позволяет вам иметь функцию, которая вызывается после успешного выполнения скрипта.

4 голосов
/ 08 ноября 2011
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    </head>
    <body>
        <!-- content here... -->
    </body>
    <script>
        $.getScript('http://site.com/script.js');
    </script>
</html>

Поместите скрипт в конец вашей страницы, чтобы «отложить» выполнение скрипта. Используйте jQuery.getScript (), чтобы получить и выполнить скрипт.

РЕДАКТИРОВАТЬ Во избежание сомнений, добавлен запрос. Очевидно, что рано нужно позволить $.getScript работать.

0 голосов
/ 25 ноября 2014

Это может быть более чистый подход:

$(document).ready(function(){ 
    $('<script>')
        .attr('type', 'text/javascript')
        .attr('src', 'http://www.example.com/script.js')
        .appendTo('body');
});

Или:

$(document).ready(function(){ 
    $('<script>')
        .attr({'type': 'text/javascript', 'src': 'http://www.example.com/script.js'})
        .appendTo('body');
});
0 голосов
/ 08 ноября 2011

Чтобы отделить загрузку главной страницы от загрузки рекламы, вы можете поместить объявление на его собственной странице в iframe или, аналогичным образом, загрузить файл сценария с помощью AJAX и запускать его всякий раз, когда оно выходит из строя.Если первое не подходит из-за ссылки на URI или чего-либо другого, второе дает вам некоторую гибкость: вы можете использовать замену строки, чтобы переписать «document.write» на что-то другое, или, возможно, временно заменить ее, например, «document.write = custom_function»;«

...