jsp頁面調用Firefox外掛程式__js

來源:互聯網
上載者:User
同事已經開發了Firefox外掛程式,用於讀取非接觸卡的卡片資訊,但是頁面上不會調用,查了資料之後發現其實蠻簡單,就是坑比較多。
<head>
<title>測試</title>    
<embed id="plugin" type="application/intime-plugin" style="display:block;width:50%;height:100px;"></embed>
<script language="JavaScript">
     var plugin = document.getElementById("plugin");
function doTest() {
        plugin.getcard();
        card = plugin.getcard;
        alert(card);
}     
</script>
</head>
<body>    
    <form name="formname">
     <input type="button" onclick="doTest()" value="讀卡"/>
    </form>
</body> embed是外掛程式的載入,getcard()是讀取卡的操作,getcard是獲得卡號資訊。
1、即便使用jQuery,在錨定外掛程式所在DOM元素的時候也不能使用jQuery內建的selector,否則讀不出來
2、外掛程式不能被隱藏,如果被隱藏之後,就失效了,所以display:none;或者hide()都不可取。
原文參考自web開發網:http://www.software8.co/wzjs/

將這個寫成了外掛程式,方便讀卡操作使用。
(function($){
    $.fn.swipeCpu = function(params){
        var defaults = {
                trigger:false
        };
        $.extend(defaults, params);
        var ele = $(this);
        //height 1px,width 0px 儘可能壓縮外掛程式在頁面的位置,不能設為0,也不能將display設定none,會導致外掛程式失效;
        ele.after("<embed id=\"plugin-cpu-read\" type=\"application/intime-plugin\" style=\"display:block;height:0px;width:0px;\">");
        var plugin = document.getElementById("plugin-cpu-read");
        plugin.getcard();
        //雖然在外掛程式中定義了該屬性是字串,但是傳遞出來的是個對象,所以只能先複製到文字框,再取值,再截取
        var cardno = plugin.getcard;
        ele.val(cardno);
        cardno = substrCard($(this).val());
        ele.val(cardno);
        $("#plugin-cpu-read").remove();
        //是否需要觸發斷行符號事件
        if(defaults.trigger){
            var event = $.Event("keyup");
            event.keyCode = 13;
            event.which = 13;
            ele.trigger(event);
        }
    };
})(jQuery);
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.