【问题标题】:How to check if link is valid / skip if not for background image如何检查链接是否有效/如果不是背景图像则跳过
【发布时间】:2014-05-23 04:18:17
【问题描述】:

我有一组图片链接,其中一些无效。我正在尝试循环并将背景图像设置为这些照片。但是,当我尝试为无效链接(返回 404 页面)设置一个时,我的代码会中断。谁能建议一种方法来检查链接是否有效或(甚至更好)跳过无效链接?

这是我检索链接的方式(来自 JSON 提要)

url = feed[index]['images']['url'];
imageArray.push[index]

这里是我设置图像 src 值的地方

imageArray = ['link1', 'link2']
for(var y = 0; y < 1; y++){
    document.body.style.backgroundImage="url('"+imageArray[y]+"')";
} //Here is where my code breaks

我只是看不到在哪里放置try/catch 语句。谢谢

【问题讨论】:

    标签: jquery http-status-code-404 preloading


    【解决方案1】:
    function loadImage(){
        var xhr;
        if(window.XMLHttpRequest){
            xhr = new XMLHttpRequest();
        }
        else{
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xhr.onreadystatechange = function(){
            if(xhr.status == 404){
                // 404 Error!
            }
            else if(xhr.readyState == 5 && xhr.status == 200){
                document.body.style.backgroundImage = xhr.responseText;
            }
        }
        xhr.open("GET", "http://test.com/" + id + ".png", true);
        xhr.send();
    }
    

    请修改图像设置行...休息一下,它会像魅力一样工作

    【讨论】:

    • 我真的很想用它来将图像加载到我的缓存中,这些 url 已经通过 $.ajax 请求了。我不明白在哪里实现这个功能
    • 图片被浏览器缓存后会自动使用缓存。
    猜你喜欢
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 2014-02-25
    相关资源
    最近更新 更多