用jQuery阅读外部脚本标签的内容

加载骨干模板的常见模式如下所示:

<script type='text/template' id='foo'>
    my template
</script>

----
var whatever = $('#foo').html();

我想将脚本包含在外部文件中,如下所示:

<script type='text/template' id='foo' src='myTemplate.tpl'></script>

但是foohtml()现在是空的。

我看着浏览器拉下了模板文件,但我不确定它是否在页面dom中。 有没有一种简单的方法可以在JavaScript中引用脚本的内容,或者浏览器是否忽略它并抛出结果?


我认为要真正执行外部加载的脚本,您必须对内容执行eval()。 你不是真的把它添加到DOM,因为它是脚本,你将它添加到JS运行时。 可能还有其他的方法,但eval()通常被认为是一个安全漏洞,因为可以评估恶意代码。

我倾向于在服务器上生成模板部分,所以我知道当DOM准备就绪时我所有的JS都在那里。


如果该点在脚本加载后立即执行,您可以在脚本标记上放置一个onload属性。 如果你想在运行时下载内容,那么你可以使用异步下载策略(如Gats指出)。

记住在外部文件中使用jQuery模板的模板时要注意一些重要的事项,这里有一篇关于jquery模板与外部文件有关的有趣文章,您必须检查它。

链接地址: http://www.djcxy.com/p/10549.html

上一篇: Read content of external script tag with jquery

下一篇: Where to build new domain entities? Controller, repository, or mapper?