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的元素內容是:
特別的: