@@ -260,6 +260,23 @@ if (typeof window.mermaid !== 'undefined' && window.mermaid) {
260
260
}
261
261
}
262
262
263
+ function jsonp ( url , callback ) {
264
+ const callbackName = 'jsonp_callback_' + Math . round ( 1000000000 * Math . random ( ) )
265
+ window [ callbackName ] = function ( data ) {
266
+ delete window [ callbackName ]
267
+ document . body . removeChild ( script )
268
+ callback ( data )
269
+ }
270
+
271
+ const script = document . createElement ( 'script' )
272
+ script . src = url + ( url . indexOf ( '?' ) >= 0 ? '&' : '?' ) + 'callback=' + callbackName
273
+ document . body . appendChild ( script )
274
+ script . onerror = function ( e ) {
275
+ console . error ( e )
276
+ script . remove ( )
277
+ }
278
+ }
279
+
263
280
// dynamic event or object binding here
264
281
export function finishView ( view ) {
265
282
// todo list
@@ -304,17 +321,11 @@ export function finishView (view) {
304
321
imgPlayiframe ( this , '//player.vimeo.com/video/' )
305
322
} )
306
323
. each ( ( key , value ) => {
307
- $ . ajax ( {
308
- type : 'GET' ,
309
- url : `//vimeo.com/api/v2/video/${ $ ( value ) . attr ( 'data-videoid' ) } .json` ,
310
- jsonp : 'callback' ,
311
- dataType : 'jsonp' ,
312
- success ( data ) {
313
- const thumbnailSrc = data [ 0 ] . thumbnail_large
314
- const image = `<img src="${ thumbnailSrc } " />`
315
- $ ( value ) . prepend ( image )
316
- if ( window . viewAjaxCallback ) window . viewAjaxCallback ( )
317
- }
324
+ jsonp ( `//vimeo.com/api/v2/video/${ $ ( value ) . attr ( 'data-videoid' ) } .json` , function ( data ) {
325
+ const thumbnailSrc = data [ 0 ] . thumbnail_large
326
+ const image = `<img src="${ thumbnailSrc } " />`
327
+ $ ( value ) . prepend ( image )
328
+ if ( window . viewAjaxCallback ) window . viewAjaxCallback ( )
318
329
} )
319
330
} )
320
331
// gist
0 commit comments