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

首頁 > 開發 > JS > 正文

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

2024-05-06 16:54:40
字體:
來源:轉載
供稿:網友
自從[JavaScript]自定義MessageBox一文發布以后,很多網友都來信詢問,如何在服務端調用ShowInfo方法,周末休息想了個折中的辦法來實現。

  首先,我們應該可以先明確,為什么我們用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
xvideos亚洲人网站| 成人亚洲综合色就1024| 国产欧美精品在线播放| 性欧美暴力猛交69hd| 欧美成人免费视频| 性欧美视频videos6一9| 91sao在线观看国产| 亚洲护士老师的毛茸茸最新章节| 中文字幕亚洲一区在线观看| 国产成人精品在线播放| 欧美亚洲国产日韩2020| 亚洲国产成人精品一区二区| 久久在线视频在线| 日韩免费观看在线观看| 亚洲视频视频在线| 欧美性猛交xxxx久久久| 中文字幕九色91在线| 国产精品女人网站| 久久青草精品视频免费观看| 国产亚洲福利一区| 26uuu国产精品视频| 欧美激情一区二区三区久久久| 91精品国产自产在线老师啪| 视频一区视频二区国产精品| 欧美美女操人视频| 正在播放欧美一区| x99av成人免费| 亚洲系列中文字幕| 精品久久久久久久中文字幕| 精品欧美一区二区三区| 日本精品久久久久久久| 精品国模在线视频| 国产精品电影久久久久电影网| 久久九九有精品国产23| 亚洲精品wwwww| 日韩免费在线观看视频| 欧美一级片久久久久久久| 国产一区二区三区欧美| 日韩av最新在线观看| 92福利视频午夜1000合集在线观看| 久久视频在线播放| 欧美亚洲午夜视频在线观看| 姬川优奈aav一区二区| 久久久久九九九九| 美女性感视频久久久| 91精品免费视频| 97av视频在线| 国产在线98福利播放视频| 日韩高清不卡av| 97国产精品视频人人做人人爱| 日韩精品日韩在线观看| 国产成人在线亚洲欧美| 日韩av在线最新| 欧美精品亚州精品| 亚洲一区二区三区xxx视频| 97色在线观看免费视频| 色偷偷88888欧美精品久久久| 92看片淫黄大片看国产片| 伊人青青综合网站| 亚洲国产精品久久| 成人av在线天堂| 国产精品一久久香蕉国产线看观看| 69久久夜色精品国产69| 中文字幕亚洲一区二区三区| 韩国精品美女www爽爽爽视频| 久久久久久这里只有精品| 国产精品视频一| 视频在线观看99| 久久综合国产精品台湾中文娱乐网| 国产精品海角社区在线观看| 亚洲精品乱码久久久久久金桔影视| 91免费人成网站在线观看18| 欧美一区二区大胆人体摄影专业网站| 国内精品美女av在线播放| 在线亚洲男人天堂| 97精品国产97久久久久久春色| 国产精品video| 亚洲精品电影在线| 久久精品国产成人精品| 精品国产区一区二区三区在线观看| 国内精品小视频在线观看| 伊人久久大香线蕉av一区二区| 国产精品国产三级国产aⅴ9色| 国产成人av网| 日韩在线观看av| 91免费综合在线| 日韩性生活视频| 国产一区二区三区丝袜| 久久久精品国产网站| 欧美电影第一页| 午夜免费在线观看精品视频| 亚洲免费电影一区| 亚洲欧美国产精品| 亚洲成人aaa| 91精品视频专区| 欧美激情欧美激情在线五月| 国内精品久久久久影院优| 国产欧美精品久久久| 久久久久久久久网站| 97激碰免费视频| 亚洲电影免费观看高清完整版在线| 欧美电影在线播放| 国产精品国产自产拍高清av水多| 91夜夜揉人人捏人人添红杏| 色综合色综合久久综合频道88| 精品一区二区三区四区在线| 亚洲视频国产视频| 美女视频黄免费的亚洲男人天堂| 亚洲一区二区久久久| 国模gogo一区二区大胆私拍| 在线成人中文字幕| 日韩视频在线免费| 日韩高清不卡av| 欧美国产日韩中文字幕在线| 国产精品久久久久久久久久久不卡| 国产精品久久久久久av下载红粉| 尤物tv国产一区| 91久久久久久久久久久| 51精品在线观看| 亚洲精品福利资源站| 国产日韩中文字幕| 亚洲一区二区中文| 久久久精品一区| 亚洲欧洲激情在线| 亚洲欧美日韩中文视频| 亚洲电影中文字幕| 欧美日韩国产在线| 精品无人国产偷自产在线| 国产精品久久久久77777| 日韩成人在线电影网| 色青青草原桃花久久综合| 国产精品丝袜白浆摸在线| 日韩中文在线观看| 久久久久久久久中文字幕| 欧美交受高潮1| 日韩精品极品在线观看| 日韩欧美国产成人| 亚洲国产精久久久久久久| 国产在线一区二区三区| xxxx欧美18另类的高清| 久久中文字幕在线| 精品国产乱码久久久久久虫虫漫画| 亚洲人精选亚洲人成在线| 啪一啪鲁一鲁2019在线视频| 自拍偷拍免费精品| 91免费综合在线| 国产午夜精品美女视频明星a级| 最好看的2019年中文视频| 北条麻妃在线一区二区| 日韩中文字幕视频在线观看| 日韩精品极品视频免费观看| 亚洲第一精品夜夜躁人人爽| 色琪琪综合男人的天堂aⅴ视频| 久久全球大尺度高清视频| 国产在线精品成人一区二区三区| 91久久久精品| 亚洲自拍偷拍色图| 亚洲免费电影在线观看| 欧美成人午夜免费视在线看片| 有码中文亚洲精品| 欧美性高跟鞋xxxxhd| 亚洲人成网站777色婷婷| 亚洲精品国偷自产在线99热| 亚洲天堂av网|