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. | + | <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(' | + | $('#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:// | + | $('#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 => { | ||
− | + | 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
用法
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>