Как получить содержимое сценария без javascript? - PullRequest
2 голосов
/ 08 апреля 2011

Я включаю тег <script> в мою HTML-страницу, которая содержит фрагмент HTML. Я хочу получить этот фрагмент и вставить его на страницу. Расположение фрагмента находится на том же сервере, что и сама страница, поэтому межсайтовых проблем нет.

<script id="frag" src="/frag.html" type="text/x-jquery-tmpl"></script>

(кстати, я указал тип сценария как text / x-jquery-tmpl, поскольку я пытался использовать шаблоны jQuery для доступа к содержимому сценария, хотя это всего лишь HTML-литерал). Я считаю, что значение type не имеет большого значения.

Некоторые вещи, которые я пробовал:

// Try inserting frag.html into div hdr
// this attempt, using jQuery templates, doesn't work
$('#frag').tmpl().appendTo('#hdr');

// This is an empty string
var contents = $('#frag').text();

Извините за все jQuery, я даже меньше представляю, как это сделать без него. Я - невежественный пользователь javascript, и мне всегда нужна пушистая защита jQuery.

Ответы [ 2 ]

3 голосов
/ 08 апреля 2011

Вы должны использовать ".html ()":

var contents = $('#frag').html();

Лично я считаю, что это глупо, и что ".text ()" должен работать, но я зарегистрировал ошибку по этой проблеме, и люди из jQuery отказались ее исправить.

Кроме того, значение атрибута "type" на самом деле не имеет большого значения, но вам определенно нужно установить его на что-то , а не (конечно) на фактический тип JavaScript.

2 голосов
/ 08 апреля 2011

или более полно:

$(document).ready(function(){

  $('#hdr').append($('#frag').html());

});

или без тега сценария вообще ...

    <div id='hdr'>
      //content
      <div id='hdr_add'></div>
    </div>
...

     $(document).ready(function(){
        $('#hdr_add').load('frag.html');
    });

.load () - это быстрый вызов AJAX, который просто и просто загружает контент с заданного URL в заданный элемент.

...