当前位置 : 主页 > 网络编程 > JavaScript >

将chrome当前访问的地址缩短并生成二维码

来源:互联网 收集:自由互联 发布时间:2021-06-30
将chrome当前访问的地址缩短并生成二维码 支持360浏览器 var qrcode, surlEl; if (typeof chrome.tabs !== 'undefined') { chrome.tabs.getSelected(function (w) { surlEl = G('surl'); toShortUrl(w.url).then(function (surl) { surl
将chrome当前访问的地址缩短并生成二维码
支持360浏览器
 
var qrcode,
    surlEl;
  
if (typeof chrome.tabs !== 'undefined') {
    chrome.tabs.getSelected(function (w) {
  
        surlEl = G('surl');
  
        toShortUrl(w.url).then(function (surl) {
            surlEl.value = surl;
            if (!qrcode) {
                qrcode = new QRCode("qr", {
                    text: surl,
                    width: 300,
                    height: 300,
                    colorDark: "#000000",
                    colorLight: "#ffffff",
                    correctLevel: QRCode.CorrectLevel.H
                });
            } else {
                qrcode.clear();
                qrcode.makeCode(surl);
            }
        }).catch(function (err) {
            surlEl.value = err;
        });
  
        surlEl.blur();
        G('onekeycopy').focus();
    });
}
  
G('onekeycopy').onclick = function () {
    var t = this;
    var copyDiv = G('surl');
  
    execCopy(copyDiv);
  
    t.innerHTML = '已复制到剪切板';
    t.style.backgroundColor = '#aaa';
  
    setTimeout(function () {
        t.innerHTML = '一键复制';
        t.style.backgroundColor = 'green';
    }, 1000);
};
  
function execCopy(copyDiv) {
    copyDiv.focus();
    document.execCommand('SelectAll');
    document.execCommand("Copy", false, null);
}
  
function toShortUrl(url) {
  
    var requestURL = 'https://50r.cn/short_url.json?url=' + encodeURIComponent(url);
  
    return new Promise(function (resolve, reject) {
  
        get(requestURL).then(function (data) {
            resolve(data.url);
        }).catch(function (err) {
            reject("Error: " + err);
        });
  
    });
}
  
function get(url) {
      
    return new Promise(function (resolve, reject) {
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4) {
                if (xhr.status === 200) {
                    var responseText = xhr.responseText;
                    var contentType = xhr.getResponseHeader("Content-Type");
                    if (contentType && contentType.indexOf('application/json') === 0) {
                        responseText = JSON.parse(responseText);
                        if (responseText.error) {
                            reject(responseText.error || 'error.');
                        }
                    }
                    resolve(responseText);
                } else {
                    reject(xhr.responseText || 'ajax error!');
                }
            }
        };
        xhr.open('get', url, true);
        xhr.send();
    });
}
  
function G(element) {
    return document.getElementById(element)
}

网友评论