原生JavaScript 分享到QQ, 微信, 微博

53 阅读1分钟

分享到微博

const shareMicroblog = () => {
    var param = {
        url: 'http://yishanhe.xhkjzj.com/',
        title: "忆山河真牛逼",
    }
    var temp = []
    for (var p in param) {
        temp.push(p + '=' + encodeURIComponent(param[p] || ''))
    }
    var targetUrl = 'http://service.weibo.com/share/share.php?' + temp.join('&');
    window.open(targetUrl, 'sinaweibo');
}

分享到QQ

    var param = {
        url: 'http://yishanhe.xhkjzj.com/',
        /*分享地址(可选)*/
        //  desc: '',
        /*分享理由(可选)*/
        title: '《忆山河》太棒了',
        /*分享标题(可选)*/
        summary: '太棒了《忆山河》有脑子就来吧',
        /*分享描述(可选)*/
        // pics: pic || '',
        /*分享图片(可选)*/
        // flash: '',
        /*视频地址(可选)*/
        // site: '' /*分享来源 (可选) */
    };
    var temp = [];
    for (var p in param) {
        temp.push(p + '=' + encodeURIComponent(param[p] || ''))
    }
    var targetUrl = 'https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?'
        + temp.join('&');
    window.open(targetUrl)
}

分享到微信

微信需要先弹出一个新的浏览器窗口, 扫描二维码, 进入到手机版的网页, 二维码使用qrcode库

const showWechatPopup = () => {
    // 定义窗口参数
    const windowFeatures = `
        width=800,
        height=800,
        left=${window.screenX + 50},
        top=${window.screenY + 50},
        scrollbars=no,
        toolbar=no,
        location=no
    `;

    // 尝试打开新窗口
    const newWindow = window.open(
        '/erweima',
        'wechatShare',
        windowFeatures
    );

    // 设置标题
    newWindow.onload = () => {
        newWindow.document.title = '分享微信二维码'
    }

    // // 处理弹窗被拦截的情况
    if (!newWindow) {
        console.error('弹窗被浏览器阻止,请允许弹出窗口')
        alert('请允许弹出窗口以继续操作')
        // 可选:在这里添加备用方案,比如显示二维码模态框
    }
}

关键函数window.open()

window.open(URL,name,specs,replace)

image.png

image.png