四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

用apply讓javascript函數(shù)僅執(zhí)行一次的代碼

復(fù)制代碼 代碼如下:
var obj = new Object();
obj.triggerOnce = function(fn) { //控制讓函數(shù)只觸發(fā)一次
return function() {
try {
fn.apply(this, arguments);
}
catch (e) {
var txt = "There was an error on this page./n/n";
txt += "Error message: " + e.message + "/n/n";
txt += "Error name: " + e.name + "/n/n";
//alert(txt);//正式平臺(tái)上可能需要注釋掉該行
}
finally {
fn = null;
}
}
}

調(diào)用形式:
復(fù)制代碼 代碼如下:
function showMsg(arg){
alert(arg);
}
var fn=obj.triggerOnce(showMsg);
fn(1);//只執(zhí)行一次
fn(2);//沒有調(diào)用fn

最后,關(guān)于Javascript的apply方法,您可以簡(jiǎn)單參考這篇舊文。
【外一篇】用Javascript取得querystring的值
在常見的網(wǎng)站中,經(jīng)常碰到有“XXXX.ASPx?username=jeffwong&address=北京” 這種形式的url,通過ASP.NET的Request對(duì)象獲取鍵值輕而易舉,通過js也不是很難,用下面的函數(shù)就可以搞定了:
代碼
復(fù)制代碼 代碼如下:
var urlStrs = location.search; //QueryString
var Request = {};
Request.Count = 0;
Request.Add = function(name, value) {
if (Request.hasOwnProperty(name) == false) {
Request.Count++; //如果不存在,計(jì)數(shù)添加1
}
Request[name] = value;
return true;
}
Request.QueryString = function(name) {//取對(duì)應(yīng)的鍵值
var key = name.toString().toLocaleLowerCase(); //不區(qū)分大小寫
var result = null;
try {
// if (Request.hasOwnProperty(key)) {
result = Request[key];
// }
}
catch (e) {
//alert(e.message);
}
return result;
}
Request.Init = function(urlQueryString) {
if (urlQueryString.indexOf("?") != -1) {
var url = urlQueryString.substr(1)
var strArr = url.split("&");
for (var i = 0; i < strArr.length; i++) {
var strChildArr = strArr[i].split("=");
var name = String(strChildArr[0]).toLowerCase();
var value = unescape(strChildArr[1]); //unescape解碼
this.Add(name, value); //添加
}
}
}

測(cè)試函數(shù)如下:
代碼
復(fù)制代碼 代碼如下:
//測(cè)試函數(shù)
function test() {
Request.Init(urlStrs); //初始化request
alert(Request.Count);
var name = "username";
var value = Request.QueryString(name);
alert(Request[name]);
alert(Request.QueryString(name));
name = "address"
alert(Request[name]);
alert(Request.QueryString(name));
name = "age";
alert(Request[name]);
alert(Request.QueryString(name));
}

需要說明的是,url里的參數(shù)通常都會(huì)有編碼,本文采用的是比較常用的unescape進(jìn)行解碼,實(shí)際上,關(guān)于url參數(shù)編碼,通常有escape,encodeURIComponent和encodeURI這三種編碼函數(shù),escape是window對(duì)象的內(nèi)置函數(shù),而另外兩種則是Javascript內(nèi)置函數(shù),它們解碼的函數(shù)也是一一對(duì)應(yīng)的關(guān)系(您可以參考這一篇),各自對(duì)應(yīng)的反轉(zhuǎn)函數(shù)分別是unescape,decodeURIComponent和decodeURI。
作者:Jeff Wong

JavaScript技術(shù)用apply讓javascript函數(shù)僅執(zhí)行一次的代碼,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 流浪地球2演员表| 搜狐手机网首页新闻| 大场鸫| call me by your name电影| 黛博拉·安沃尔| 黑暗之心电影完整在线观看| 桥梁工程施工方案| 杨幂的视频| 生长因子是结痂前用还是掉痂后用 | 香港之夜在线观看免费观看| 全能住宅改造王| 天地争霸美猴王在线观看| 全家福演员表| www.五月天| 意大利a级情欲片女人城| 雪中悍刀行第一季演员表 | 战地天使| 心跳 电视剧| 影音先锋欧美| 李修文| 尤勇个人资料简介简历| 散文诗二首批注| 吴朋奉| 抖音下载安装i| 内蒙古电视台| 蹲踞式跳远教案| 杨采钰电影| 电影继母劳拉| 今天是你的生日bb伴奏正谱| 伦理 在线| 姐妹在线观看| 《推拿》完整版播放| 在线观看www视频| 斌子| 无锡电视台| 杨幂吻戏| 电锯狂魔| 一江深情简谱| 台湾电影网| 孙东杓| coralie|