亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

在服務端(Page.Write)調用自定義的JS方法詳解

2019-11-20 22:25:58
字體:
來源:轉載
供稿:網友
首先,我們應該可以先明確,為什么我們用Page.Write把自定義的JS方法輸出到頁面上為什么IE不能識別,會出現“XXX未定義”的錯誤。原因很簡單,因為我們用Page.Write輸出的腳本是出現在頁面的最頂端。IE讀到是javascript函數的時候,就開始執行,但是此時我們link的js文件并未被IE讀入,所以IE無法識別我們定義在js文件里面的方法。那write alert為什么可以呢?因為alert是IE內嵌的腳本功能函數,不管有沒有頁面,IE都認得它。
找到問題所在,自然就好解決了:
1、把我們自定義的方法內嵌到IE里面。 ---> 看起來有點異想天開,呵呵
2、等頁面載入完成后再觸發事件。 --->觸發事件,沒錯。
如何知道頁面是否載入完成呢?
1、通過document的狀態
2、通過事件觸發(windows.onload)
第一種好像比較不保險,有時候明明已經全部載完了,它還是一直顯示在傳送數據(FF此情況最明顯),所以還是用事件比較保險一點。
定義一個簡單方法,掛載到windows.onload里面,執行的時候做一個標識
復制代碼 代碼如下:

var loadComplete = false;
function LoadCompleted()
{
loadComplete= true;
}
window.attachEvent("onload",LoadCompleted);

呵呵,這樣我們只要通過判斷loadComplete來取得頁面是否載入完畢了。
復制代碼 代碼如下:

var mImgdir = "";
var mCaption = "caption";
var mMsg = "Message";
var mOkClick= null;
function ShowMessage(imgdir,caption,msg,OkClick)
{
if(loadComplete)
{
KMessageBox.ShowInfo(mImgdir,mCaption,mMsg,mOkClick);
}
}

這樣子在loadComplete未false的情況下,我們就不會去執行KMessageBox.ShowInfo()方法,只然就不會出現JS錯誤提示了。
單單這樣子,還不行,因為輸出的這樣的腳本,IE只在輸出頁面的時候執行了一次,但是此時loadComplete=false,所以,我們需要定時檢測頁面是否載入完畢。說到定時,只然是祭出setTimeout & setInterval. 我們這里需要不停的檢測,故使用setInterval方法。最終代碼如下:
復制代碼 代碼如下:

var loadComplete = false;
var mImgdir = "";
var mCaption = "caption";
var mMsg = "Message";
var mOkClick= null;
var timerID;
function ShowMessage(imgdir,caption,msg,OkClick)
{
if(loadComplete)
{
KMessageBox.ShowInfo(mImgdir,mCaption,mMsg,mOkClick);
     //卸載此事件     window.detachEvent("onload",function(){LoadCompleted;});     //停止定時觸發
     window.clearInterval(timerID);
    }
}
function LoadCompleted() { loadComplete=true; }
window.attachEvent("onload",LoadCompleted);
//設置定時檢測機制
timerID = window.setInterval(ShowMessage,1);

當然以上代碼只兼容IE,因為使用attachEvent 和 detachEvent,至于讓他兼容其他瀏覽器可以參看[JavaScript]自定義Title的顯示方式一文中的處理方式:
復制代碼 代碼如下:

if(!document.attachEvent)//Not IE
{
document.attachEvent = function(){document.addEventListener(arguments[0].substr(2),arguments[1],arguments[2])}
}
if(!window.attachEvent)//Not IE
{
window.attachEvent = function(){window.addEventListener(arguments[0].substr(2),arguments[1],arguments[2])}
}
 

在服務端,只要StringBuilder出以上的腳本,然后Write出來就可以了。上面也只是提供了一種思路,當然還會有其他的辦法,比如我不適用定時檢測,我直接掛載到windows.onload里面,讓頁面自動監聽,自動執行,也未嘗不可:),正所謂條條大路通羅馬嘛~~~~~
以上思路來自yui,并且yui實現了一個更漂亮的自定義MessageBox,有興趣的朋友可以共同研究下。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕国内精品| 精品国产精品自拍| 日韩高清电影免费观看完整版| 日韩精品一区二区视频| 日本91av在线播放| 久久琪琪电影院| 国产视频精品久久久| 狠狠做深爱婷婷久久综合一区| 亚洲成成品网站| 97在线视频观看| 日本三级韩国三级久久| 亚洲欧美综合另类中字| 成人在线国产精品| 精品国产一区二区三区久久久狼| 国产欧美日韩高清| 亲爱的老师9免费观看全集电视剧| 黑人巨大精品欧美一区二区三区| 日韩精品极品毛片系列视频| 欧美激情二区三区| 欧美日韩在线第一页| 久久久在线视频| 亚洲女人天堂av| 中日韩美女免费视频网站在线观看| 欧美精品免费在线观看| 国产成人精品电影| 国产一区二区三区视频免费| 在线免费看av不卡| 亚洲色图偷窥自拍| 精品欧美国产一区二区三区| 在线视频日韩精品| 日韩极品精品视频免费观看| 92福利视频午夜1000合集在线观看| 久久久电影免费观看完整版| 国产精品99久久久久久白浆小说| 热99久久精品| 国产日韩精品在线| 亚洲图片欧美午夜| 国产午夜精品免费一区二区三区| 欧美极品美女视频网站在线观看免费| 91国产在线精品| 欧美激情在线有限公司| 成人a级免费视频| 久久精品国产一区二区三区| 成人精品一区二区三区电影黑人| 亚洲午夜小视频| 国产精品一区二区女厕厕| 精品久久久久久久中文字幕| 九九热精品视频国产| 91在线直播亚洲| 91免费视频网站| 蜜臀久久99精品久久久无需会员| 亚洲天堂av高清| 亚洲网址你懂得| 国产精品视频在线观看| 久久精品视频免费播放| 免费99精品国产自在在线| 亚洲高清免费观看高清完整版| 国产精品日韩在线一区| 91国偷自产一区二区三区的观看方式| 国产在线高清精品| 国产91精品在线播放| 久久久免费高清电视剧观看| 久久久久久91香蕉国产| 亚洲伊人一本大道中文字幕| 成人精品久久久| 91免费的视频在线播放| 国模吧一区二区| 亚洲高清在线观看| 91av在线不卡| 色偷偷av亚洲男人的天堂| 久久黄色av网站| 亚洲精品第一国产综合精品| 日韩欧美有码在线| 亚洲在线观看视频网站| 国产不卡一区二区在线播放| 国产精品99久久久久久久久久久久| 国产91精品高潮白浆喷水| 日本久久久久久| 欧美日韩国产二区| 亚洲无限乱码一二三四麻| 久久久久久亚洲精品中文字幕| 国产精品久久综合av爱欲tv| 色偷偷888欧美精品久久久| 欧美激情一区二区三区久久久| 久久九九热免费视频| 日韩电视剧在线观看免费网站| 日本欧美一二三区| 青青青国产精品一区二区| 中文字幕亚洲欧美一区二区三区| 免费91在线视频| 欧美日韩视频在线| 日韩在线视频中文字幕| 日本sm极度另类视频| 亚洲综合精品一区二区| 欧美中文在线视频| 欧美专区日韩视频| 日韩在线观看免费高清完整版| 亚洲日本中文字幕免费在线不卡| 精品久久在线播放| 午夜精品久久久久久久99黑人| 日韩美女免费视频| 国产精品444| 日韩中文字幕视频在线观看| 深夜福利国产精品| 欧美另类69精品久久久久9999| 久久在线观看视频| 成人在线免费观看视视频| 国产日韩av在线| 国产欧美日韩精品丝袜高跟鞋| 91免费观看网站| 亚洲一区二区三区久久| 欧美视频专区一二在线观看| 黑人精品xxx一区一二区| 亚洲精品自拍偷拍| 欧美老女人性视频| 亚洲香蕉伊综合在人在线视看| 日韩精品在线视频美女| 日韩精品亚洲精品| 久久色免费在线视频| 欧美激情按摩在线| 亚洲va欧美va国产综合久久| 尤物tv国产一区| 亚洲欧美国产日韩中文字幕| 欧美日韩在线另类| 久久99久久久久久久噜噜| 亚洲国产高清福利视频| 91精品国产高清| 国产日韩欧美黄色| 萌白酱国产一区二区| 亚洲香蕉成人av网站在线观看| 亚洲欧美国产视频| 激情成人在线视频| 成人乱人伦精品视频在线观看| 亚洲18私人小影院| 国产精品一香蕉国产线看观看| 国产精品h片在线播放| 国产精品视频不卡| 亚洲综合一区二区不卡| 欧美成人自拍视频| 97精品一区二区三区| 色婷婷综合久久久久中文字幕1| 亚洲国产成人精品女人久久久| 国产91精品青草社区| 91禁国产网站| 中文字幕亚洲综合| 亚洲欧洲激情在线| 欧美性高跟鞋xxxxhd| 亚洲综合精品伊人久久| 国产精品www色诱视频| 国产黑人绿帽在线第一区| 国产精品久久电影观看| 日韩欧美在线视频观看| zzjj国产精品一区二区| 国a精品视频大全| 国产日本欧美在线观看| 亚洲女成人图区| 91免费视频国产| 正在播放欧美视频| 久久精品人人做人人爽| 国产精品99久久久久久www| 国产精品久久av| 国产成人精品久久| 精品亚洲永久免费精品| www高清在线视频日韩欧美|