jsp頁(yè)面調(diào)用火狐插件
同事已經(jīng)開(kāi)發(fā)了火狐插件,用于讀取非接觸卡的卡片信息,但是頁(yè)面上不會(huì)調(diào)用,查了資料之后發(fā)現(xiàn)其實(shí)蠻簡(jiǎn)單,就是坑比較多。- <head>
- <title>測(cè)試</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>
1、即便使用jQuery,在定位插件所在DOM元素的時(shí)候也不能使用jQuery自帶的selector,否則讀不出來(lái)
2、插件不能被隱藏,如果被隱藏之后,就失效了,所以display:none;或者h(yuǎn)ide()都不可取。
將這個(gè)寫(xiě)成了插件,方便讀卡操作使用。
- (function($){
- $.fn.swipeCpu = function(params){
- var defaults = {
- trigger:false
- };
- $.extend(defaults, params);
- var ele = $(this);
- //height 1px,width 0px 盡可能壓縮插件在頁(yè)面的位置,不能設(shè)為0,也不能將display設(shè)置none,會(huì)導(dǎo)致插件失效;
- 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();
- //雖然在插件中定義了該屬性是字符串,但是傳遞出來(lái)的是個(gè)對(duì)象,所以只能先復(fù)制到文本框,再取值,再截取
- var cardno = plugin.getcard;
- ele.val(cardno);
- cardno = substrCard($(this).val());
- ele.val(cardno);
- $("#plugin-cpu-read").remove();
- //是否需要觸發(fā)回車(chē)事件
- if(defaults.trigger){
- var event = $.Event("keyup");
- event.keyCode = 13;
- event.which = 13;
- ele.trigger(event);
- }
- };
- })(jQuery);
posted on 2013-04-08 18:59 你爸是李剛 閱讀(350) 評(píng)論(1) 編輯 收藏