gpt4 book ai didi

javascript - 如何使用 Meteor/handlebars.js 将 js 加载到我的模板中?

转载 作者:行者123 更新时间:2023-11-29 18:17:34 26 4
gpt4 key购买 nike

我正在使用 Meteor 进行一个项目。我试过使用脚本标签加载 javascript 文件,但这当然行不通。我尝试使用脚本标签加载这些相同的文件,我也只是将它们另存为文件并将它们放在 lib 文件夹中,以便最后加载它们。还有一个内部脚本加载有问题。我什至尝试删除 (function(){ 部分并关闭函数的一部分,因为我知道它已经被放入一个带有 Meteor 的函数中。我怎样才能让下面的代码和其他 js 文件/脚本与 Meteor 一起正常运行?

(function() {

// Base template
var base_tpl =
"<!doctype html>\n" +
"<html>\n\t" +
"<head>\n\t\t" +
"<meta charset=\"utf-8\">\n\t\t" +
"<title>Test</title>\n\n\t\t\n\t" +
"</head>\n\t" +
"<body>\n\t\n\t" +
"</body>\n" +
"</html>";

var prepareSource = function() {
var html = html_editor.getValue(),
css = css_editor.getValue(),
js = js_editor.getValue(),
src = '';


src = base_tpl.replace('</body>', html + '</body>');


css = '<style>' + css + '</style>';
src = src.replace('</head>', css + '</head>');


js = '<script>' + js + '<\/script>';
src = src.replace('</body>', js + '</body>');

return src;
};

var render = function() {
var source = prepareSource();

var iframe = document.querySelector('#output iframe'),
iframe_doc = iframe.contentDocument;

iframe_doc.open();
iframe_doc.write(source);
iframe_doc.close();
};



var cm_opt = {
mode: 'text/html',
gutter: true,
lineNumbers: true,
};


var html_box = document.querySelector('#html textarea');
var html_editor = CodeMirror.fromTextArea(html_box, cm_opt);

html_editor.on('change', function (inst, changes) {
render();
});


cm_opt.mode = 'css';
var css_box = document.querySelector('#css textarea');
var css_editor = CodeMirror.fromTextArea(css_box, cm_opt);

css_editor.on('change', function (inst, changes) {
render();
});


cm_opt.mode = 'javascript';
var js_box = document.querySelector('#js textarea');
var js_editor = CodeMirror.fromTextArea(js_box, cm_opt);

js_editor.on('change', function (inst, changes) {
render();
});





/*
Fixing the Height of CodeMirror.
You might want to do this in CSS instead
of JS and override the styles from the main
codemirror.css
*/
var cms = document.querySelectorAll('.CodeMirror');
for (var i = 0; i < cms.length; i++) {

cms[i].style.position = 'absolute';
cms[i].style.top = '30px';
cms[i].style.bottom = '0';
cms[i].style.left = '0';
cms[i].style.right = '0';
cms[i].style.height = '100%';
}
/*cms = document.querySelectorAll('.CodeMirror-scroll');
for (i = 0; i < cms.length; i++) {
cms[i].style.height = '100%';
}*/

}());

最佳答案

您可以将它放在公用文件夹中,然后在您需要它时,您可以使用 jQuery 的 getScript 加载它,如下所示:

jQuery.getScript(/你的脚本.js)

编辑:如果您使用 Iron-Router 并且 javascript 并不总是需要加载(或者它需要在呈现模板之前加载)我推荐 Manuel Schoebel 的这个聪明的解决方案:

http://www.manuel-schoebel.com/blog/use-meteor-iron-router-waiton-to-load-external-javascript

关于javascript - 如何使用 Meteor/handlebars.js 将 js 加载到我的模板中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21712805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com