如何获取非JavaScript“脚本”的内容?

时间:2011-04-08 17:25:42

标签: javascript jquery jquery-templates

我在HTML页面中包含一个<script>标记,其中包含HTML片段。我想获取此片段并将其插入页面。片段的位置与页面本身位于同一服务器上,因此没有跨站点问题。

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

(顺便说一句,我已经将脚本的类型指定为text / x-jquery-tmpl,因为我一直在尝试使用jQuery模板来访问脚本内容,即使它只是一个HTML文字)。我相信'类型'的价值并不是什么大问题。

我尝试过的一些事情:

// 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 ignoramus,需要随时保持jQuery的蓬松保护。

2 个答案:

答案 0 :(得分:3)

你必须使用“.html()”:

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

我个人觉得这很愚蠢,而且“.text()”应该可以工作,但是我记录了一个关于这个问题的bug,jQuery的人拒绝修复它。

另外,“type”属性的值实际上并不是什么大问题,但你肯定需要将它设置为某些东西,而不是(当然)实际的JavaScript类型。< / p>

答案 1 :(得分:2)

或更全面:

$(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中的内容加载到给定元素中。