「Widget:萌百条目」:修訂間差異
跳至導覽
跳至搜尋
無編輯摘要
imported>=海豚= 無編輯摘要 |
imported>Irukaza 無編輯摘要 |
||
(未顯示由 2 位使用者於中間所作的 46 次修訂) | |||
行 1: | 行 1: | ||
<noinclude>Only for {{tl|萌百页面嵌入}}</noinclude> | <noinclude>Only for {{tl|萌百页面嵌入}}</noinclude> | ||
<includeonly> | <includeonly> | ||
< | <script> | ||
const jsonp = (() => { | |||
let incrementCallbackKey = 0 | |||
return function jsonp(config) { | |||
return new Promise((resolve, reject) => { | |||
const scriptTag = document.createElement('script') | |||
const requestUrl = config.url + '?' + new URLSearchParams({ | |||
...config.params, | |||
. | callback: '___jsonpCallback' + ++incrementCallbackKey, | ||
}).toString() | |||
. | |||
scriptTag.src = requestUrl | |||
window['___jsonpCallback' + incrementCallbackKey] = resolve | |||
scriptTag.onload = () => scriptTag.remove() | |||
scriptTag.onerror = () => reject(new Error('jsonp request error')) | |||
document.body.appendChild(scriptTag) | |||
setTimeout(() => reject(new Error('jsonp request timeout')), 1_200) | |||
}) | |||
} | |||
})() | |||
jsonp({ | |||
url: 'https://zh.moegirl.org/api.php', | |||
params: { | |||
action: 'parse', | |||
format: 'json', | |||
page:document.body.querySelector('#moe').dataset.pagename | |||
} | |||
}) | |||
.then(data => { | |||
if (data.error) { | |||
throw new Error(data.error.info) | |||
} else { | |||
document.body.querySelector('#moe').innerHTML = data.parse.text['*'] | |||
} | |||
} | } | ||
}) | }) | ||
</script> | </script> | ||
</includeonly> | </includeonly> |