通過(guò)URL觸發(fā)不同的點(diǎn)擊事件

遇到了這樣一個(gè)問(wèn)題,通過(guò)超鏈接的跳轉(zhuǎn)到不同的頁(yè)面,然后通過(guò)URL的不同的參數(shù)鹃觉,來(lái)觸發(fā)相應(yīng)的事件
先看看dome.html的超鏈接部分:

<!DOCTYPE html>
<html>
<meta charset="utf-8"/>
<head>
<link rel="stylesheet" type="text/css" href="dome.css"/>
</head>
<body>
<a href="dome2.html?btn=btn1">跳轉(zhuǎn)到dome2,觸發(fā)btn1事件</a><br/>
<a href="dome2.html?btn=btn2">跳轉(zhuǎn)到dome2,觸發(fā)btn2事件</a>
</body>
</html>

下面是截圖


通過(guò)點(diǎn)擊不同的超鏈接赤惊,跳轉(zhuǎn)到dome2.html,并且通過(guò)參數(shù)的不同來(lái)觸發(fā)不同的按鈕事件
下面是dome2.html的代碼:

<!DOCTYPE html>
<html>
<meta charset="utf-8"/>
<head>
</head>
<body>
<input type="button" id="btn1" value="btn1"/><br/>
<input type="button" id="btn2" value="btn2"/>
<script>
window.onload = function () {

    var btn1 = document.getElementById("btn1");
    var btn2 = document.getElementById("btn2");


    function EventTarget () {
        this.handlers = {};     // 對(duì)象屬性,有三個(gè)方法
        // this.handlers = {
            // type1 : [type1Fun1, type1Fun2],
            // type2 : [type2Fun1, type2Fun2]
        // }
    }
    EventTarget.prototype = {
        constructor : EventTarget,
        /**綁定事件
        * param type : 自定義事件類型
        * param handler : 自定義事件綁定的回調(diào)函數(shù)
        */
        addHandler : function (type, handler) {
            // 如果傳入的事件類型為undefined,就創(chuàng)建一個(gè)數(shù)組
            if (typeof this.handlers[type] == "undefined") {
                this.handlers[type] = [];
            }
            // 再將回調(diào)函數(shù)添加到數(shù)組中去
            this.handlers[type].push(handler);
        },
        /**觸發(fā)事件
        * param event : 傳入的對(duì)象
        * { type : "show", message : "hello world"}
        */
        fire : function (event) {
            if (!event.target) {
                event.target = this;
            }
            if (this.handlers[event.type] instanceof Array) {
                var handlers = this.handlers[event.type];
                for (var i = 0, len = handlers.length; i < len; i++) {
                    handlers[i](event);         // 調(diào)用對(duì)應(yīng)事件的回調(diào)函數(shù)
                }
            } else {
                throw new Error("No event can call");
            }
        },
        /**注銷事件的回調(diào)函數(shù)
        * param type : 事件類型
        * param handler : 回調(diào)函數(shù)
        * 調(diào)用示例:removeHanlder("show", showMessage);
        * 注銷show類型的showMessage函數(shù)
        **/
        removeHandler : function (type, handler) {
            if (this.handlers[type] instanceof Array) {
                var handlers = this.handlers[type];     // 取得對(duì)應(yīng)事件的回調(diào)函數(shù)
                for (var i = 0, len = handlers.length; i < len; i++) {
                    if (handlers[i] == handler) {
                        break;      // 得到對(duì)應(yīng)事件的索引值
                    }
                }
                handlers.splice(i, 1);      // 刪除索引值,即刪除對(duì)應(yīng)的事件的其中一個(gè)回調(diào)函數(shù)
            }
        }
    }
    function btn1Fun(){
        alert("btn1Fun");
    }
    var btn2Fun = function (){
        alert("btn2Fun");
    }
    var eventTarget = new EventTarget();         
    // 獲取請(qǐng)求的參數(shù)   
    var request = window.location.search.substring(1);
    // 獲取value值
    var value = request.split("=")[1];
    // 通過(guò)遍歷button觸發(fā)事件
    var input = document.getElementsByTagName("input");
    for (var i = 0, len = input.length; i < len; i++) {
        if (value === input[i].value) {
            eventTarget.addHandler("click", eval(value + "Fun"));
            eventTarget.fire({ type : "click"});
        }
    }
}

</script>
</body>
</html>

在dome2.html中涡驮,我們首先解析url,并且獲取參數(shù)btn的值喜滨,然后根據(jù)不同的值來(lái)綁定并且觸發(fā)不同的事件捉捅。
假設(shè)我們?cè)赿ome.html中點(diǎn)擊了第二行的超鏈接,那么頁(yè)面就會(huì)跳轉(zhuǎn)到dome2.html頁(yè)面中虽风,并且觸發(fā)btn2的事件棒口,彈出”btn2”對(duì)話框
下面是截圖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辜膝,隨后出現(xiàn)的幾起案子无牵,更是在濱河造成了極大的恐慌,老刑警劉巖厂抖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茎毁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡忱辅,警方通過(guò)查閱死者的電腦和手機(jī)七蜘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)墙懂,“玉大人橡卤,你說(shuō)我怎么就攤上這事∷鸢幔” “怎么了碧库?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵柜与,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我嵌灰,道長(zhǎng)弄匕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任伞鲫,我火速辦了婚禮粘茄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘秕脓。我一直安慰自己,他們只是感情好儒搭,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布吠架。 她就那樣靜靜地躺著,像睡著了一般搂鲫。 火紅的嫁衣襯著肌膚如雪傍药。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天魂仍,我揣著相機(jī)與錄音拐辽,去河邊找鬼。 笑死擦酌,一個(gè)胖子當(dāng)著我的面吹牛俱诸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赊舶,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼睁搭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了笼平?” 一聲冷哼從身側(cè)響起园骆,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎寓调,沒(méi)想到半個(gè)月后锌唾,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夺英,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年晌涕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秋麸。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡渐排,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出灸蟆,到底是詐尸還是另有隱情驯耻,我是刑警寧澤亲族,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站可缚,受9級(jí)特大地震影響霎迫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帘靡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一知给、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧描姚,春花似錦涩赢、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至绊寻,卻和暖如春花墩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背澄步。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工冰蘑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人村缸。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓祠肥,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親王凑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子搪柑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,305評(píng)論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件索烹、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,121評(píng)論 4 61
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理工碾,服務(wù)發(fā)現(xiàn),斷路器百姓,智...
    卡卡羅2017閱讀 134,708評(píng)論 18 139
  • 我今天下夜班渊额,看了一場(chǎng)電影,一部不感興趣的電影垒拢,可是還是看完了才走旬迹,盡管我很累,眼睛很澀求类。 生活奔垦,一直很殘忍!
    木南順其自然閱讀 54評(píng)論 0 0
  • 一尸疆、引言 iOS9中為我們提供了許多新的api椿猎,搜索功能的加強(qiáng)無(wú)疑是其中比較顯眼的一個(gè)惶岭。首先,我們先設(shè)想一下:如果...
    親親qin閱讀 1,954評(píng)論 0 6