在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/人工智能  HTML/ JQ怎么跨域判斷HTTPS的URL資源是否有效?

JQ怎么跨域判斷HTTPS的URL資源是否有效?

有一個(gè)需求是這這樣的,當(dāng)頁面加載完的時(shí)候,根據(jù)當(dāng)前頁面的URL,來判斷對(duì)應(yīng)的圖片資源是否存在,如果存在則就用這個(gè)對(duì)應(yīng)的圖片,如果不存在則使用默認(rèn)的圖片。
假設(shè)當(dāng)前頁面URL:https://www.example.com/somep...
規(guī)則對(duì)應(yīng)的圖片文件是someid.png,圖片的URL:https://imgs.example.com/imgs...
如果不存在這張圖片,則使用默認(rèn)的https://imgs.example.com/imgs...

這里的jquery 如何去判斷 https://imgs.example.com/imgs...

var popup = (
    function() {
        var target = window.location.href;
        var currentFilename = window.location.pathname.split("/")[window.location.pathname.split("/").length - 1].split(".")[0];
        var currentPopupImg = 'https://imgs.example.com/' + currentFilename + '.png';
        var defautlPopupImg = 'https://imgs.example.com/default.png';
        var picContent = "";
        var checkPopupImgOnce = function() {
            $.ajax({
                url: currentPopupImg,
                 cache: false,
                dataType:"jsonp",
                type: 'GET',
                complete: function(response) {
                    if (response.status == 200) {
                        picContent = currentFilename;
                    } else {
                        changePopUpImgSrc();
                    }
                }
            });
        }
        var changePopUpImgSrc = function() {
            picContent = defautlPopupImg;
        }
        var showPopUp = function() {
            var flag = 0;
            layer.open({
                type: 1,
                title: false,
                closeBtn: 0,
                shade: 0,
                shadeClose: true,
                anim: 0,
                skin: 'popup',
                area: ['600px', '450px'],
                time: 12000,
                resize: false,
                btn: ['不再提醒', '稍后再說', '立即了解'],
                yes: function(index, layero) {
                    //按鈕【按鈕一】的回調(diào)
                    //永遠(yuǎn)關(guān)閉彈窗
                    flag = 1;
                    layer.closeAll();
                },
                btn2: function(index, layero) {
                    //按鈕【按鈕二】的回調(diào)
                    //$("#layui-layer1").hide();
                    //暫時(shí)關(guān)閉彈窗
                    flag = 0;
                    layer.close(index);
                },
                btn3: function(index, layero) {
                    //按鈕【按鈕三】的回調(diào)
                    //return false 開啟該代碼可禁止點(diǎn)擊該按鈕關(guān)閉
                    //打開快商通
                    //暫時(shí)關(guān)閉彈窗
                    flag = 0;
                    window.open('https://ad.example.com');
                    layer.close(index);
                },
                btnAlign: 'c',
                content: picContent,
                end: function() {
                    if (flag == 1) {
                        // 永遠(yuǎn)關(guān)閉彈窗
                        window.clearTimeout(timer);
                    } else {
                        timer = setTimeout(popup, 15000);
                    }
                }
            });
        }
        var pop = {
            checkimg: checkPopupImgOnce,
            showPopUp: showPopUp
        }
        return pop;
    })();
popup.checkimg();
popup.showPopUp();
回答
編輯回答
朽鹿

@tanglijun

function imgNotFound() {
        var img = $(".popup img").get(0);
        //默認(rèn)圖片
        img.src = "http://imgs.example.com/default.png";
        img.onerror = null;
    }
function popup() {
    var target = window.location.href;
    var filename = window.location.pathname.split("/")[window.location.pathname.split("/").length - 1].split(".")[0];
    var timer = null;
    //不永遠(yuǎn)關(guān)閉彈窗
    var flag = 0;
    layer.open({
        type: 1,
        title: false,
        closeBtn: 0,
        shade: 0,
        shadeClose: true,
        anim: 0,
        skin: 'popup',
        area: ['600px', '450px'],
        time: 12000,
        resize: false,
        btn: ['不再提醒', '稍后再說', '立即了解'],
        yes: function(index, layero) {
            //按鈕【按鈕一】的回調(diào)
            //$("#layui-layer1").hide();
            //永遠(yuǎn)關(guān)閉彈窗
            flag = 1;
            layer.closeAll();
        },
        btn2: function(index, layero) {
            //按鈕【按鈕二】的回調(diào)
            //$("#layui-layer1").hide();
            //暫時(shí)關(guān)閉彈窗
            flag = 0;
            layer.close(index);
        },
        btn3: function(index, layero) {
            //按鈕【按鈕三】的回調(diào)
            //return false 開啟該代碼可禁止點(diǎn)擊該按鈕關(guān)閉
            //打開快商通
            //暫時(shí)關(guān)閉彈窗
            flag = 0;
            window.open("https://ad.example.com);
            layer.close(index);
        },
        btnAlign: 'c',
        content: '<img width="600" height="385" onerror="imgNotFound();" src="http://imgs.example.com/' + filename + '.png' + '"' + '/>',
        end: function() {
            if (flag == 1) {
                // 永遠(yuǎn)關(guān)閉彈窗
                window.clearTimeout(timer);
            } else {
                timer = setTimeout(popup, 15000);
            }
        }
    });
}
popup();

layer 是一個(gè)插件。這樣的話控制臺(tái)一直會(huì)有報(bào)錯(cuò)的可能

2017年4月4日 14:39
編輯回答
挽歌

利用 <img /> 標(biāo)簽,大致思路:

function isValidImage(url, successCallback, abortCallback, errorCallback) {
    var img = document.createElement('img');
    
    img.src = url
    
    img.onload = successCallback
    img.onabort = abortCallback
    img.onerror = errorCallback
    
    return img
}
2018年8月12日 15:01