前往
大廳
主題

火狐UC腳本-AddMenuPlus規則:解析/顯示二維碼

—— | 2017-03-26 20:09:36 | 巴幣 2 | 人氣 365

標題字數有限就縮短了,一個是解析圖片二維碼,另一個是顯示當前頁面二維碼。
兩個是分開的。
使用方法在圖上,顯示當前的二維碼按右鍵即可見,就不附了。
已繁體化。


page({
    label: "解析圖片二維碼",
    insertAfter: "ACRiLeSouGou",
    condition: "image",
    image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlklEQVQ4ja3NQQrCQBBE0XeDLAMuvGvuI0ECEkEIuHDhxgvkAF7DTQxDM3YULPhUTU9ND39Sh0PAh/ymKxf0YWFfmX/qgGPi2d2qIWwfKjnrOFVQeNZJdV7Y1GWhzOU5czAVnuUp9Dd1Xaidy7lbhfIuc3APP9+/9FWPxEtqHTCHhXOSY9ceI54BweNsXN5q0GL3Iy2aF4bCT+aPt4fEAAAAAElFTkSuQmCC",
    oncommand: function() {
        function getDataURLFromIMG(imgsrc) {
            if (typeof imgsrc == 'undefined') return "";
            const NSURI = "http://www.w3.org/1999/xhtml";
            var img = new Image();
            var that = this;
            var canvas,
                isCompleted = false;
            img.onload = function() {
                var width = this.naturalWidth,
                    height = this.naturalHeight;
                canvas = document.createElementNS(NSURI, "canvas");
                canvas.width = width;
                canvas.height = height;
                var ctx = canvas.getContext("2d");
                ctx.drawImage(this, 0, 0);
                isCompleted = true;
            };
            img.onerror = function() {
                Components.utils.reportError("Count not load: " + imgsrc);
                isCompleted = true;
            };
            img.src = imgsrc;

            var thread = Cc['@mozilla.org/thread-manager;1'].getService().mainThread;
            while (!isCompleted) {
                thread.processNextEvent(true);
            }
            var data = canvas ? canvas.toDataURL("image/gif", 1) : "";
            canvas = null;
            return data;
        };
        function getBlobFromDataURL(dataurl) {
            var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
            while(n--){
                u8arr[n] = bstr.charCodeAt(n);
            }
            return new Blob([u8arr], {type:mime});
        }
        function Deal(ffile){
            var xmlHttp = new XMLHttpRequest();
            xmlHttp.open("POST", "http://qring.org/decode", true);
            var formdata = new FormData();
            formdata.append("file", ffile);
            xmlHttp.send(formdata);
            xmlHttp.onload = function() {
                if (xmlHttp.status == 200) {
                    var data = JSON.parse(xmlHttp.responseText);
                    if (data.msg != "SUCCESS")
                        alert("錯誤:" + data.msg);
                    else {
                        var text=data.data.text;
                        if(text.indexOf("http") == 0){
                            addMenu.copy(text);
                            var message = confirm("識別內容:[ "+text+" ]~\n檢查到為【鏈結】是否打開?")
                            if(message == true){
                                gBrowser.addTab(text);
                            }else{
                            }
                        }else{
                            addMenu.copy(text);
                            alert("識別內容:[ "+text+" ]\n結果已經複製到剪貼板了~");
                        }
                    }
                }else if(xmlHttp.status == 500){
                    alert("錯誤:解析失敗");
                }
            };
        }
        Deal(getBlobFromDataURL(getDataURLFromIMG(gContextMenu.mediaURL || gContextMenu.imageURL || gContextMenu.bgImageURL)));
    }
});
    
page({  
label: "顯示當前頁面二維碼",
    insertAfter: "ACRiLeSouGou",
    oncommand: function(){
        gBrowser.loadURI("javascript:(function(){if(document.getElementById){var%20x=document.body;var%20o=document.createElement('script');if(typeof(o)!='object')%20o=document.standardCreateElement('script');o.setAttribute('src','https://git.oschina.net/runningcheese/JiathisQR.js/raw/master/jiathisqr.js');o.setAttribute('type','text/javascript');x.appendChild(o);}})();");
    },
    image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlklEQVQ4ja3NQQrCQBBE0XeDLAMuvGvuI0ECEkEIuHDhxgvkAF7DTQxDM3YULPhUTU9ND39Sh0PAh/ymKxf0YWFfmX/qgGPi2d2qIWwfKjnrOFVQeNZJdV7Y1GWhzOU5czAVnuUp9Dd1Xaidy7lbhfIuc3APP9+/9FWPxEtqHTCHhXOSY9ceI54BweNsXN5q0GL3Iy2aF4bCT+aPt4fEAAAAAElFTkSuQmCC"   
});

作者網站:
【2017.3.26】右键图片二维码解析-AddMenu_Firefox卡饭论坛

創作回應

貓貓風 ฅ●ω●ฅ
[e19]
2017-04-13 22:23:24

更多創作