15

从 Firefox 开发者网站,我知道 Firefox 使用

objectURL = window.URL.createObjectURL(file);

获取文件类型的 url,但在 chrome 和其他 webkit 浏览器中,我们有window.webkitURL.createObjectURL()用于检测 url。

我不知道如何根据浏览器引擎交换此功能,我需要它在两种浏览器(Chrome 和 firefox)上都可以使用

https://developer.mozilla.org/en/DOM/window.URL.createObjectURL

4

3 回答 3

26

您可以定义一个包装函数:

function createObjectURL ( file ) {
    if ( window.webkitURL ) {
        return window.webkitURL.createObjectURL( file );
    } else if ( window.URL && window.URL.createObjectURL ) {
        return window.URL.createObjectURL( file );
    } else {
        return null;
    }
}

接着:

// works cross-browser
var url = createObjectURL( file );
于 2012-06-30T21:16:43.707 回答
25

简单的一个班轮:

var createObjectURL = (window.URL || window.webkitURL || {}).createObjectURL || function(){};
于 2012-06-30T21:15:11.280 回答
9
if (window.URL !== undefined) {
    window.URL.createObjectURL();
} else if (window.webkitURL !== undefined) {
    window.webkitURL.createObjectURL();
} else {
    console.log('Method Unavailable: createObjectURL');
}

是关于你正在寻找的东西。此外,示例使用更简单的...

window.URL = window.URL || window.webkitURL;
于 2012-06-30T21:10:54.097 回答