0

我想知道,我如何获取已加载脚本、样式表的内容……再见访问元素上设置的 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 模板(例如,mustach、knout),但不想将它们写入页面,我宁愿将它们放在单独的文件中。现在我看到我可以使用脚本或链接标签加载任何文件,所以我正在测试我是否可以像这样加载它们......任何评论为什么这可能是一个坏主意或如何做得更好,我们将不胜感激。

4

3 回答 3

1

尝试使用load()

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

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

contents = $('#test').html();
于 2012-12-06T15:00:43.280 回答
0

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

所以你只有一个标签,属性中有一个id和一个外部资源。src将其视为元数据。

您将不得不手动加载资源

像这样的东西

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

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

于 2012-12-06T15:11:35.440 回答
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>
于 2017-06-20T04:39:37.667 回答