Как выбрать между `window.URL.createObjectURL()` и `window.webkitURL.createObjectURL()` на основе браузера
С веб-сайта разработчика Firefox я знаю, что Firefox использует
objectURL = window.URL.createObjectURL(file);
чтобы получить url типа файла, но в хромовых и других браузерах webkit у нас есть window.webkitURL.createObjectURL()
для обнаружения url.
Я не знаю, как заменить эти функции на основе браузеров, и мне нужно, чтобы они работали в обоих браузерах (Chrome и firefox).
https://developer.mozilla.org/en/DOM/window.URL.createObjectURL
Ответы
Ответ 1
Вы можете определить функцию обертки:
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 );
Ответ 2
Простой один вкладыш:
var createObjectURL = (window.URL || window.webkitURL || {}).createObjectURL || function(){};
Ответ 3
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;