mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
65 lines
1.2 KiB
JavaScript
65 lines
1.2 KiB
JavaScript
![]() |
define([
|
||
|
"../core",
|
||
|
"../ajax"
|
||
|
], function( jQuery ) {
|
||
|
|
||
|
// Install script dataType
|
||
|
jQuery.ajaxSetup({
|
||
|
accepts: {
|
||
|
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
|
||
|
},
|
||
|
contents: {
|
||
|
script: /(?:java|ecma)script/
|
||
|
},
|
||
|
converters: {
|
||
|
"text script": function( text ) {
|
||
|
jQuery.globalEval( text );
|
||
|
return text;
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Handle cache's special case and crossDomain
|
||
|
jQuery.ajaxPrefilter( "script", function( s ) {
|
||
|
if ( s.cache === undefined ) {
|
||
|
s.cache = false;
|
||
|
}
|
||
|
if ( s.crossDomain ) {
|
||
|
s.type = "GET";
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Bind script tag hack transport
|
||
|
jQuery.ajaxTransport( "script", function( s ) {
|
||
|
// This transport only deals with cross domain requests
|
||
|
if ( s.crossDomain ) {
|
||
|
var script, callback;
|
||
|
return {
|
||
|
send: function( _, complete ) {
|
||
|
script = jQuery("<script>").prop({
|
||
|
async: true,
|
||
|
charset: s.scriptCharset,
|
||
|
src: s.url
|
||
|
}).on(
|
||
|
"load error",
|
||
|
callback = function( evt ) {
|
||
|
script.remove();
|
||
|
callback = null;
|
||
|
if ( evt ) {
|
||
|
complete( evt.type === "error" ? 404 : 200, evt.type );
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
document.head.appendChild( script[ 0 ] );
|
||
|
},
|
||
|
abort: function() {
|
||
|
if ( callback ) {
|
||
|
callback();
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
|
||
|
});
|