Javascript可以确定PNG或JPG吗?

时间:2014-02-27 21:52:29

标签: javascript image

我不知道这是否可行,但有没有办法在Javascript中解密JPG和PNG?我假设没有,但如果我能以不同的方式获得帮助,那就去做我想做的事。

如果图像是JPG或PNG,我需要设置图像。现在我正在为我构建的字符串添加一个扩展名,因为我只从代码中获取一个int。

我想知道我是否可以告诉它使用if / else语句添加扩展名。
像'.jpg'或'.png'这样的东西就是那里的东西不存在,可以使用其他东西。

if (JPG) {
        img.attr('src', samplePath + 'pages/' + page + '.jpg');
    }
    else {
        img.attr('src', samplePath + 'pages/' + page + '.png');
    }

非常感谢任何帮助或指示

2 个答案:

答案 0 :(得分:0)

通过检查XMLHttpRequest中的标头来扫描MIME类型。

MIME类型: http://en.wikipedia.org/wiki/Internet_media_type#Type_image

XHR / XMLHttpRequest的: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

答案 1 :(得分:0)

首先,使用jQuery。

然后,假设你有这样的标记:

<img src="images/1x1.png" test-src="images/3" test-ext="jpg|png|gif" />

然后,您可以向图像添加一个onerror事件处理程序,如下所示:

jQuery(function ($) {
    $('img[test-src][test-ext]').each(function () {
        // closures
        var $img = $(this);
        var sSrc = $img.attr('test-src');
        var sTestSrc = sSrc;
        var aExtensions = $img.attr('test-ext').split('|');
        var iTest = 0;
        var fAttemptLoad = function () {
            if (iTest < aExtensions.length) {
                sTestSrc = sSrc + '.' + aExtensions[iTest];
                $img.attr('src', sTestSrc);
            }
        };

        // event method closures
        var fFailTest = function () {
            // increment test extension
            iTest++;
            // if there are still tests to run?
            if (iTest < aExtensions.length) {
                fAttemptLoad();
            }
        };

        // event handler
        $img.error(fFailTest);

        // initial state, start test.
        fAttemptLoad();
    });
});

这是一个小提琴:

http://jsfiddle.net/9d276/6/