Получение функции для фактического вывода HTML - PullRequest
0 голосов
/ 18 августа 2011

У вас работает JavaScript, который динамически создает массив изображений.

Вот упрощенная версия:

    var imgArray = new Array(
        "mainBG.jpg",
        "mainBG2.jpg",    
        "mainBG3.jpg",
        "mainBG4.jpg"
    );

    var img = Math.floor(Math.random()*imgArray.length);

    jQuery(document).ready(function() {
        $("body").ezBgResize({img : "/lib/img/bkgr/" + imgArray[img]});
    });

    function generateThumbs(){
         var t = document.getElementById("thumbs");
         var ret = '';

        for(i=0;i<imgArray.length;i++){

            var image = imgArray[i];

            ret += '<a href="#" onclick="changeBig(\''+image+'\')" /><img src="/lib/img/bkgr/'+image+'" alt="thumbnail image" width="77" height="44" /></a>';
        }      

        return ret;        
    };

    function changeBig(bg){
        $("body").ezBgResize({img : "/lib/img/bkgr/" + bg});
    }

Затем на странице это записывается просто:

 <div class="scrollable">   
    <div class="items" id="thumbs">
        <script>document.write(generateThumbs());</script>
    </div>
</div>

Проблема в том, что при просмотре исходного кода он никогда не выводит фактический HTML. Источник просто показывает эту строку. Есть ли способ заставить эту функцию фактически выводить HTML на страницу - частично для SEO, но также и для того, чтобы некоторые jQuery могли взаимодействовать с ней?

Ответы [ 4 ]

3 голосов
/ 18 августа 2011

Когда вы просматриваете исходный код, все, что вы видите, - это код, возвращаемый в браузер с веб-сервера без каких-либо изменений, внесенных javascript в dom.Чтобы иметь код в исходном коде, вам нужно сгенерировать его на стороне сервера.

Чтобы увидеть сгенерированный источник с модификациями javascript, вы можете использовать firebug в firefox или встроенные инструменты разработчика в Chrome / Safari /IE9.

2 голосов
/ 18 августа 2011

Это сделает свое дело

$(function(){
    $("#thumbs").html(generateThumbs());
});
1 голос
/ 18 августа 2011

Попробуйте:

$('#thumbs').html(generateThumbs());
1 голос
/ 18 августа 2011

Не звоните document.write в контексте HTML-страницы. Вы должны делать что-то вроде этого:

 <script type="text/javascript" language="javascript">
     document.getElementById('thumbs').innerHTML = generateThumbs();
 </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...