如何获取已加载文件的内容(使用脚本或链接)

时间:2012-12-06 14:59:13

标签: javascript jquery templates

我想知道,如何获取已加载脚本,样式表的内容,...再次访问元素上的id集。

示例:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Demo</title>
    <script src="../jquery-1.8.3.min.js"></script>
    <script id="test" src="test.txt" type="text/isis-template"></script>
    <!-- File contains "Hello world" -->
    <script>
        $(function () {
            $('#test').GET_CONTENT_OF_LOADED_FILE
        });
    </script>
</head>
<body>
</body>
</html>

背景:我想加载HTML模板(例如forach,knockout),但不想将它们写入页面,我宁愿将它们放在一个单独的文件中。现在我看到我可以使用脚本或链接标记加载任何文件,所以我正在测试是否可以像这样加载它们.... 任何评论为什么这可能是一个坏主意或如何做得更好,这是值得赞赏的。

3 个答案:

答案 0 :(得分:1)

尝试使用load()

$(function () {
      $('#test').load('yourfolder/test.html', function(resp){
           alert(resp); 
      });
});

如果您已经在某些html元素中加载了内容

contents = $('#test').html();

答案 1 :(得分:0)

如果您使用调试工具并查看网络活动,您将看到它没有加载外部文件(,因为它不是text/javascript,并且浏览器不知道如何处理它
我的错误测试,正在测试本地文件

因此,您只有id的标记和src属性中的外部资源。将其视为元数据。

您必须手动加载资源

类似这样的事情

// load external template resources
$('script[type="text/isis-template"]').each(function(){
    $(this).load(this.src);
});

对于实际使用,您需要确保在尝试使用模板之前加载模板。

答案 2 :(得分:0)

当文档准备就绪时,你想要 text / isis-template 文件的内容吗? 你很幸运,因为CORS这个文件并没有落下,但我的(我正在寻找并今天来到这里的答案)确实如此。

好吧,做ajax吧!

<!doctype html>
<html>
 <head>
   <meta charset="utf-8">
   <title>Demo</title>
   <script src="../jquery-1.8.3.min.js"></script>

   <!-- File contains "Hello world" -->
   <script>
     $(function () {
        $.ajax({ url: "test.html"})
         .done(function(cont) {
             var GET_CONTENT_OF_LOADED_FILE=cont;
         });
     });
   </script>
  </head>
  <body></body>
 </html>