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