<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-6  評論-38  文章-40  trackbacks-0
    ?

    1.在javascript中,可以用三種方式來模擬多線程。
    a)在javascript中用command模式模擬多線程
    b)window.setTimeout(code,time)
    讓代碼在指定時間后執行一次。
    c)setInterval(code,time)
    讓代碼按照指定時間間隔來執行。

    注意setTimeout與setInterval的區別

    2.似乎無法在javascript的單線程執行環境中利用AutoItX來捕捉onload事件中的alert。
    背景:selenium中采用了重載window.alert的方式,來截獲所有javascript中的alert。
    Window.alert = function (msg) {
    This.Alerted.push(msg);
    };
    這樣,所有的alert消息被悄無聲息地存放在一個隊列中。原本的alert彈出后,如果不點擊OK或者關閉,整個javascript執行線程就一直停止。重載window.alert的方式避免彈出alert窗口,保證了selenium順利地執行。
    但是,這種方式無法捕捉body的onload事件中的alert。因為每一次刷新頁面的時候,所有的被重載的方法和事件都會被清空,而我們來不及再一次重載alert方法。
    使用Watir的時候,我注意到了她是借助一個名為AutoItX庫來實現這個功能的。于是,設想是否可以通過同樣的方法來捕捉onload事件中的alert方法。
    我不詳細介紹AutoItX類庫,簡要說一下她的原理:
    var autoit = new ActiveXObject(“AutoItX3.Control”);
    autoit.WinWait(title,text,…);//等待標題為title,包含text的窗口出現

    開始的設想是使用如下的方法來不斷查詢alert窗口是否彈出:
    window.setTimeout(‘fuction check() {autoit.WinExists(title,txt) == 1?return:check()’,100)
    但是,卻無法捕捉到alert。原因就是alert彈出后,如果不點擊OK或者關閉,整個javascript執行線程就會停止。所以,調用check函數的計時也停止了。這個問題用模擬多線程是無法解決的。

    對于這個問題的一個解決方案

    posted on 2006-12-02 08:11 一手的小窩窩 閱讀(1338) 評論(0)  編輯  收藏 所屬分類: JAVASCRIPT
    主站蜘蛛池模板: 亚洲国产成人无码AV在线影院| 日韩精品一区二区亚洲AV观看| 亚洲中文字幕久久精品无码VA| h视频在线免费看| 亚洲av无码一区二区三区乱子伦| 中国一级毛片视频免费看| 亚洲精品一级无码鲁丝片| 色哟哟国产精品免费观看| 免费在线观看一级毛片| 一区二区三区AV高清免费波多| 亚洲国产精品成人久久蜜臀 | 色拍自拍亚洲综合图区| 两个人看的www高清免费观看| 亚洲日本一区二区三区在线| 精品亚洲永久免费精品| 亚洲精品中文字幕无码AV| 7m凹凸精品分类大全免费| 亚洲国产日韩在线人成下载| 成年女人18级毛片毛片免费观看| 亚洲av永久无码精品秋霞电影秋| 国产美女被遭强高潮免费网站| 最好2018中文免费视频| 亚洲日韩精品一区二区三区| 69视频免费观看l| 亚洲一区二区三区乱码在线欧洲| 午夜dj免费在线观看| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 免费成人av电影| 特级做A爰片毛片免费看无码| 亚洲av无码一区二区三区乱子伦 | 亚洲国产乱码最新视频| 亚洲国产成人久久综合碰| 国产三级在线免费| 亚洲欧洲另类春色校园网站| 亚洲av无码乱码在线观看野外| 中文字幕无码毛片免费看| 色噜噜亚洲男人的天堂| 亚洲日本中文字幕一区二区三区| 99ee6热久久免费精品6| 亚洲AV无码国产精品永久一区| 狠狠亚洲婷婷综合色香五月排名|