Site Notice

hello, world

Difference between revisions of "Github CDN"

From Project-EPB Commons
([InPageEdit] →‎调用: 没有编辑摘要)
([InPageEdit] →‎调用: 没有编辑摘要)
 
(2 intermediate revisions by the same user not shown)
Line 7: Line 7:
 
<html>
 
<html>
 
<div class="in-page-edit">
 
<div class="in-page-edit">
<input id="showUrl" readonly onclick="this.selected = true" style="width:80%"></input><a href="javascript:;" class="btn btn-primary">view</a><button id="purgeBtn" class="btn btn-danger">purge</button>
+
<input id="showUrl" readonly onclick="this.select()" style="width:80%"></input> <a href="javascript:;" id="viewBtn"><button class="btn btn-primary">view</button></a> <button id="purgeBtn" class="btn btn-danger">purge</button>
 
<form id="dataForm">
 
<form id="dataForm">
 
<label>用户:<br/><input name="user" value="dragon-fish"/></label><br/>
 
<label>用户:<br/><input name="user" value="dragon-fish"/></label><br/>
Line 20: Line 20:
 
     if (typeof $ !== 'function') return;
 
     if (typeof $ !== 'function') return;
 
     clearInterval(_interval);
 
     clearInterval(_interval);
     $('#showUrl').val('https://cdn.jsdelivr.net/gh/...');
+
     $('#showUrl').val('Waiting for typing...');
 
     $('#dataForm').keyup(function () {
 
     $('#dataForm').keyup(function () {
 
       var url = '',
 
       var url = '',
Line 32: Line 32:
 
       url += user + repo + version + file;
 
       url += user + repo + version + file;
 
       $('#showUrl').val('https://cdn.jsdelivr.net/gh' + url);
 
       $('#showUrl').val('https://cdn.jsdelivr.net/gh' + url);
       $('#viewBtn').attr({ 'href': 'https://purge.jsdelivr.net/gh' + url, target: '_blank' });
+
       $('#viewBtn').attr({ 'href': 'https://cdn.jsdelivr.net/gh' + url, target: '_blank' });
 
       $('#purgeBtn').attr('data-url', 'https://purge.jsdelivr.net/gh' + url);
 
       $('#purgeBtn').attr('data-url', 'https://purge.jsdelivr.net/gh' + url);
 
     });
 
     });
Line 41: Line 41:
 
         $this.attr('disabled', 'disabled');
 
         $this.attr('disabled', 'disabled');
 
         $.get(url).done(res => {
 
         $.get(url).done(res => {
           console.log(res);
+
           ssi_modal.notify('', {
 +
            title: 'Request done',
 +
            content: '<pre>' + JSON.stringify(res, null, 2) + '</pre>',
 +
            className: 'in-page-edit'
 +
          })
 
         }).fail(err => {
 
         }).fail(err => {
 
           console.error(err);
 
           console.error(err);
 +
          ssi_modal.notify('error', {
 +
            title: 'Request failed',
 +
            content: '<pre>' + JSON.stringify(err, null, 2) + '</pre>',
 +
            className: 'in-page-edit'
 +
          })
 
         }).always(() => {
 
         }).always(() => {
 
           $this.attr('disabled', false);
 
           $this.attr('disabled', false);

Latest revision as of 01:53, 15 August 2020

jsDeliver

用法

https://cdn.jsdelivr.net/gh/用户/仓库@分支/文件名

调用

<html> <div class="in-page-edit"> <input id="showUrl" readonly onclick="this.select()" style="width:80%"></input> <a href="javascript:;" id="viewBtn"><button class="btn btn-primary">view</button></a> <button id="purgeBtn" class="btn btn-danger">purge</button> <form id="dataForm"> <label>用户:<br/><input name="user" value="dragon-fish"/></label><br/> <label>仓库:<br/><input name="repo" value="inpageedit-v2"/></label><br/> <label>分支:<br/><input name="version" value="master"/></label><br/> <label>文件:<br/><input name="file" value="script.js"/></label> </form> </div> <script> !(function () {

 var _interval = setInterval(function () {
   if (typeof $ !== 'function') return;
   clearInterval(_interval);
   $('#showUrl').val('Waiting for typing...');
   $('#dataForm').keyup(function () {
     var url = '',
       $this = $(this),
       formData = '?' + $this.serialize(),
       para = function (i) { return mw.util.getParamValue(i, formData) },
       user = '/' + para('user'),
       repo = '/' + para('repo'),
       version = para('version') !== '' ? '@' + para('version') : '',
       file = '/' + para('file');
     url += user + repo + version + file;
     $('#showUrl').val('https://cdn.jsdelivr.net/gh' + url);
     $('#viewBtn').attr({ 'href': 'https://cdn.jsdelivr.net/gh' + url, target: '_blank' });
     $('#purgeBtn').attr('data-url', 'https://purge.jsdelivr.net/gh' + url);
   });
   $('#purgeBtn').click(function () {
     var $this = $(this),
       url = $this.attr('data-url');
     if (url) {
       $this.attr('disabled', 'disabled');
       $.get(url).done(res => {
         ssi_modal.notify('', {
           title: 'Request done',
           content: '<pre>' + JSON.stringify(res, null, 2) + '</pre>',
           className: 'in-page-edit'
         })
       }).fail(err => {
         console.error(err);
         ssi_modal.notify('error', {
           title: 'Request failed',
           content: '<pre>' + JSON.stringify(err, null, 2) + '</pre>',
           className: 'in-page-edit'
         })
       }).always(() => {
         $this.attr('disabled', false);
       })
     }
   });
 }, 200);

})(); </script> </html>