1. <script type="text/html" id="">js模版引擎内运行js脚本
你描述的比较乱,不过我大概能理解你的意思。
因为没有具体的代码,所以也只能说说思路。
按我的理解,重新描述你现在的问题是:
通过模板渲染,或者 ajax 异步载入的 html 内容,会通过 innerHTML 或者一定的 DOM 操作,插入到文档中。你希望在这段文档碎片插入后,执行一些脚本。但是遇到的问题是:插入的脚本无法执行。
那么我的建议的解决方法有以下几种:
1、第一种方法,通过设置定时检查,来判断内容是否完成载入。
在{{data.content}} 中放一个 “标识”。例如:
<!--你正常的content内容-->
<p>。。。。。</p>
<!--特殊的标识-->
<spanid="a_special_id"></span>
然后在整个页面的脚本中,加一个定时检查器 (下面代码放在整个页面的 head 里):
varflag=false;//一个状态标记,记录需要进行的脚本是否执行过
//用来检查的函数
functioncheck(){
//如果脚本已执行过,则退出,避免重复执行。
if(flag)return;
//尝试获取{{data.content}}中的“标识”
varobj=document.getElementById('a_special_id');
//如果获取成功,说明代码已经完成载入
if(obj){
//这里放上你想要进行的操作,例如你问题中的:
jQuery(document).ready(function(){
jQuery('.media-frame-content').css("height",winheight);
});
//设置状态标记,避免脚本重复执行
flag=true;
}else{
//如果代码没有完成载入
//设置定时器,过一段时间再次检查
setTimeout(check,100);
}
}
//开始检查
check();
2、 第二种方法,是针对为什么插入的脚本不能执行来解决的。
一般来说,通过 innerHTML 或者 DOM 方法插入的 script 脚本都不能正常执行。
那么应该在你的模板解析函数中,进行一定的判断处理。
例如 ajax 获得服务器返回的数据后,检查有无 script 块,如果有,则提取其内容,并通过 eval 来执行。
示例代码:
//伪代码,假设下面是一个通过ajax获取get.php页面得到返回数据的模式
$.ajax('get.php',function(data){
varreg=/<script>([sS]+)</script>/i;//正则
varsc;
if(reg.test(data)){
sc=data.match(reg)[1];//提取脚本
data=data.replace(reg,'');//移除脚本
}
container.innerHTML=data;//将html内容输出到当前页面
if(sc)eval(sc);//如果有脚本,则执行脚本
});
以上,请采纳,请给分。
2. ASP.NET城市选择功能怎么实现
大致思路如源册下:
○ 点击"更换"弹出div,用bootstrap来实现
○ div中的tabs,仔肢用jqueryui来实现
○ tab项中的城市,用jquery.tmpl.min.js模版来实现
有关城市的Model:
public class City
{
public int Id { get; set; }
public string Name { get; set; }
public string FirstLetter { get; set; }
}
在Shared文件夹下的_Layout.cshtml中,引用jquery, jqueryui, bootstrap相关的雹戚宏css和js文件。
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
<link href="~/Content/themes/base/jquery-ui.css" rel="stylesheet" />
<link href="~/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
@RenderSection("styles", required: false)
@Scripts.Render("~/bundles/jquery")
<script src="~/Scripts/jquery-ui-1.8.24.min.js"></script>
<script src="~/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
@RenderBody()
@RenderSection("scripts", required: false)
</body>
3. 用js自动发送邮件
发送邮件本来就需要服务器端脚本, js只是触发请求执行而已!
js本身应该专是无法发送什属么外部邮件的,至少本人的愚见是这样的!
你可以把你的php保存成一个php文件,然后在这个html页面,用ajax调用请求这个页面,不就发送邮件了吗?
4. js tmpl 里面怎么使用日历控件
首先需要导入日历控件的JS然后在页面的亩帆按钮或文本框里写一个onclik="name()" name()为JS里的迅碰雹方法,根据JS里面的方法来吵昌提供相应的参数
5. javascript 模版引擎 <script type="text/template" id="temp">
看代码用应该是jquery-tmpl,这个是依赖jQuery的,文档地址:plugins.jquery.com/jquery-tmpl/
6. 使用type="text/x-jquery-tmpl1"的js遇到的问题,请大神帮忙!!
<script id="J_popOverlayTpm" type="text/x-jquery-tmpl">
</script>
<input type="燃笑搏升丛text" placeholder="起点" id="start"/>皮祥
7. javascript 的几种使用多行字符串的方式
一、字符串相加
这是最容易理解也很常用的一种形式,如下:
vartmpl=''+
'!!!5'+
'html'+
'includeheader'+
'body';
优点:易理解,简单,可靠,足够灵活,可以在单个字符串中添加js逻辑
缺点 :并不是真正意义上的多行字符串, 如果想要真正的多行,需要自己加 ,大量的+号看上去满天星,大量的'和 ,
二、字符串数组join
vararr=["12fdasdf","afsdf","23ewewer"];
varstr=arr.join(" ");//转为字符串
优点:真正意义上的多行字符串,易理解,简单,可靠,足够灵活,可以在单个字符串中添加js逻辑
【来源网络】
8. jquery.tmpl.js怎么调用外部的json数据
1 $.ajax({
2 dataType: 'jsonp',
3 url: 'data.json',
4 jsonp: '森吵$callback', 5 success: showGoods
6 });
你的success都没有传data过去。这是一个问题,其次我也看不到你返回数据额,无腔春中法确保你返回json数据是否包含${ Name }等一伍山系列的这段。
9. angularjs支持tmpl格式的页面吗
你自己可以试试,tmpl页面中使用xxx的DPI这能描述的更清楚点嘛
10. jsdoc 主题模板参考
使用npm安装jsdoc后,其文件目录结构如下:
参考: taffydb
而static文件夹放置静态文件,它会被原封不动地复制到生成的文件夹中,tmpl是模板文件
taffyData是包含所有doclet的taffyData,doclet是@link,@name...
比如使用了@name,就可以使用docs[0].name获取第一个@name值
和模板相关的模块是:
生成template的语句是
再看template.js导出类的颂搭芹构造函数
layout的初始化语句:
所以,如果要自定义模板(假设为 selfTheme ,以下都以其为例)的配置项,只需要使用 env.conf.templates 获取即可。例如:
template.js导出类的方法如下:
因此,在 layout.tmpl 文件中,有 content 变量表野毕示当前页内容
当然,同时具有data包含的其它属性变量
在publish.js中,直接使用render函数的有两处。
所以,要修改各页面的标题,只需要将调用这两枝并个函数的title函数换掉,比如:
不过重点还是添加模板变量和方法
添加到view中的方法/属性:
docs是一个包含数据的Taffy对象,它的来源是:
// myClasses等就是传入模板文件的docs变量
在模板中则用this.find({kind: 'class'})代替(view.find)
docs的元素内容是:
特别的: