Site Notice

hello, world

Difference between revisions of "Github CDN"

From Project-EPB Commons
([InPageEdit] →‎调用: 没有编辑摘要)
([InPageEdit] →‎调用: 没有编辑摘要)
Line 16: Line 16:
 
</div>
 
</div>
 
<script>
 
<script>
window.RLQ = window.RLQ || [];
+
!(function () {
RLQ.push(function () {
+
  var _interval = setInterval(function () {
  $('#showUrl').val('https://cdn.jsdelivr.net/gh/...');
+
    if (typeof $ !== 'function') return;
  $('#dataForm').keyup(function () {
+
    clearInterval(_interval);
    var url = '/',
+
    $('#showUrl').val('https://cdn.jsdelivr.net/gh/...');
      $this = $(this),
+
    $('#dataForm').keyup(function () {
      formData = '?' + $this.serialize(),
+
      var url = '',
      para = function (i) { return mw.util.getParamValue(i, formData) },
+
        $this = $(this),
      user = '/' + para('user'),
+
        formData = '?' + $this.serialize(),
      repo = '/' + para('repo'),
+
        para = function (i) { return mw.util.getParamValue(i, formData) },
      version = para('version') !== '' ? '@' + para('version') : '',
+
        user = '/' + para('user'),
      file = '/' + para('file');
+
        repo = '/' + para('repo'),
    $('#showUrl').val('https://cdn.jsdelivr.net/gh' + url);
+
        version = para('version') !== '' ? '@' + para('version') : '',
    $('#purgeBtn').attr('data-url', 'https://purge.jsdelivr.net/gh' + url);
+
        file = '/' + para('file');
  });
+
      url += user + repo + version + file;
  $('#purgeBtn').click(function () {
+
      $('#showUrl').val('https://cdn.jsdelivr.net/gh' + url);
    var $this = $(this),
+
      $('#purgeBtn').attr('data-url', 'https://purge.jsdelivr.net/gh' + url);
      url = $this.attr('data-url');
+
    });
    if (url) {
+
    $('#purgeBtn').click(function () {
      $this.attr('disabled', 'disabled');
+
      var $this = $(this),
      $.get(url).done(res => {
+
        url = $this.attr('data-url');
        console.log(res);
+
      if (url) {
      }).fail(err => {
+
        $this.attr('disabled', 'disabled');
        console.error(err);
+
        $.get(url).done(res => {
      }).always(() => {
+
          console.log(res);
        $this.attr('disabled', false);
+
        }).fail(err => {
       })
+
          console.error(err);
     }
+
        }).always(() => {
   });
+
          $this.attr('disabled', false);
});
+
        })
 +
       }
 +
     });
 +
   }, 200);
 +
})();
 
</script>
 
</script>
 
</html>
 
</html>

Revision as of 01:38, 15 August 2020

jsDeliver

用法

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

调用

<html> <div class="in-page-edit"> <input id="showUrl" readonly onclick="this.selected = true" style="width:80%"></input><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('https://cdn.jsdelivr.net/gh/...');
   $('#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);
     $('#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 => {
         console.log(res);
       }).fail(err => {
         console.error(err);
       }).always(() => {
         $this.attr('disabled', false);
       })
     }
   });
 }, 200);

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