如果Statement正在排序true / false - jQuery

时间:2014-04-28 18:00:10

标签: jquery

我有一个if语句似乎没有像我希望的那样工作。我想知道是否有人能够帮助我。

var image_url = jQuery('#bgImgWrap').css('background'), image;
if (image_url[1]) {
    console.log(image_url.length);
    // Remove url() or in case of Chrome url("")
    image_url = image_url.match(/url\([^)]+\)/)[0];
    var imgRegExp =  /\(([^)]+)\)/;
    image_url = imgRegExp.exec(image_url);

    image_url = image_url[1];
    image = new Image();

    // just in case it is not already loaded
    jQuery(image).load(function () {

    //Set the background to cover if the image is smaller than the window size          
    //Set the mobile background to always cover
    if (jQuery(window).width() > image.width || jQuery(window).height() > image.height || jQuery(window).width() < 940) {
            jQuery("#bgImgWrap").backstretch(image_url);
        }
        else {
            jQuery("#bgImgWrap").css("background-size", "auto");
        }
    });

    image.src = image_url;

我对此代码的问题在于它抓取图像并让我在没有问题的情况下为背景调整大小,但image_url会返回如下字符串:

rgb(255, 255, 255) url(http://localhost:8000/mysite/images/Our_Services2.jpg) no-repeat scroll 0% 0% / auto padding-box border-box

并且抓取image_url[1]获取字符串的url部分。在第一次执行之后,它最终会删除字符串的url部分,只留下:

rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box

所以if语句不起作用,因为它检查是否有image_url[1],但它不再有url部分,这导致我的代码在这里出错:

rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box

说:Uncaught TypeErrorL Cannot read property '0' of null

我的问题是,是否有可能通过检查image_url[1]是否包含url?如果没有,有人会知道更好的解决问题的原因吗?

0 个答案:

没有答案