如何从HTML文件中取出脚本并将其移动到它自己的. js文件中
How to take a script from an HTML file and move it to it's own .JS file?
我试图简化我的HTML文件,我有很长的脚本,包括只是HTML(模板),我想移动到自己的外部文件。当<script>
标签涉及函数时,这对我来说很容易做到,但在我的情况下,它只是直接的HTML。在新的外部文件中,我如何正确地键入这些HTML标记?见下文.
<script type="text/template7" id="myStuffTemplate">
{{#each results}}
<div class="list-block media-list">
<ul>
<li>
<a href="#" class="item-link item-content">
<div class="item-media"><img src={{this.pictures['1']}} width="80" height="80px"></div>
<div class="item-inner">
<div class="item-title-row">
<div class="item-title">{{this.name}}</div>
</div>
<div class="item-text">{{this.description}}</div>
</div>
</a>
</li>
</ul>
</div>
{{else}}
<div style="text-align:center">
<h1>Nothing yet!</h1>
<h2>Upload things you're willing to trade so you can start trading!</h2>
</div>
{{/each}}
</script>
这是HTML文件中的脚本。我想把它移到它自己的外部文件中。一个人怎么能做到这一点呢?当我链接它时,我是否像引用其他文件一样引用它?如:
<script type="text/template7" src="js/views/mystuff.js" id="myStuffTemplate"></script>
这不是一个脚本,这是一个模板,由车把或胡子模板。
你不能像Javascript那样用<script src="...">
"源"它们,但它们可以存储在外部,然后在运行时加载和处理。这需要通过AJAX调用异步完成。例如,假设您正在使用jQuery,您可以使用以下命令来实现:
// request the template
$.get('templates/products.hbs', function(rawTemplate) {
// once received, convert the raw template to a handlebars template
var template = Handlebars.compile(rawTemplate);
// compile the template with your context 'data' and set it on an element with an id
$('#someTargetId').html(template(data));
}, 'html'); // <-- tell jquery to load the file as html
请注意,即使是小模板也需要一些时间来加载,所以在页面加载和模板加载之间会有延迟。
首先,考虑使用像Angular.js或React.js这样的框架,但这应该适合你:
让我们假设你想把它放在一个id=items的div中:<div id="items"> Your code... </div>
- 在html文件中添加这个,就在
<body>
结束标记之前:
<script type="text/javascript" src="code.js"></script>
包括你的代码和这个<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
-
创建一个code.js文件并放入以下代码:
$(document).ready( function() { var myCode = "{{#each results}}" + "<div class="list-block media-list">" + "<ul>" + "<li>" + "<a href="#" class="item-link item-content">" + "<div class="item-media"><img src={{this.pictures['1']}} width="80" height="80px"></div>" + "<div class="item-inner">" + "<div class="item-title-row">" + "<div class="item-title">{{this.name}}</div>" + "</div>" + "<div class="item-text">{{this.description}}</div>" + "</div>" + "</a>" + "</li>" + "</ul>" + "</div>" + "{{else}} " + "<div style="text-align:center">" + "<h1>Nothing yet!</h1>" + "<h2>Upload things you're willing to trade so you can start trading!</h2>" + "</div>" + "{{/each}}"; $( "#items" ).html( myCode ); } );
相关文章:
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何将模板中的标记脚本移动到.js文件中
- 在移动浏览器上显示大型文本文件
- 文件的节点自动化移动到另一个文件夹中
- 如何使用javascript检查移动sd卡中是否存在文件
- 用于文件移动到另一个文件夹的Javascript自动化
- 移动网页中文件的最大大小
- Chrome扩展:将下载的文件移动到输入字段
- 按名称将文件移动到文件夹 - 谷歌应用脚本
- 在Android Cordova上将内容从文件///移动到内容///(xapk/obb)后,Canvas.toDataU
- 如何使用JavaScript将文件移动到其他目录
- 将现有模型文件移动到Require.js中时遇到问题
- 将下载的文件移动到特定位置的包管理器
- 将javascript文件移动到内联html中
- Javascript代码从内联文件移动到外部文件时会产生错误
- 将javascript时钟代码从html文件移动到外部.js文件
- 如何使用 Node.JS 将文件移动到目录
- 将信息从一个CSV文件移动到另一个CSV文件
- 为什么要将您的Javascript文件移动到另一个您也拥有的主域