Widget:萌百条目:修订间差异

H萌娘,万物皆可H的百科全书!
跳到导航 跳到搜索
imported>Irukaza
无编辑摘要
imported>Irukaza
无编辑摘要
第2行: 第2行:
<includeonly>
<includeonly>
<script>
<script>
$.ajax({
/**
   url: 'https://mzh.moegirl.org.cn/api.php',
* @typedef {object} JsonpConfig
  jsonp: 'callback',
* @property {string} url
   dataType: 'jsonp',
* @property {Record<string, Any>} params
   data: {
*/
    "action": "parse",
 
    "format": "json",
const jsonp = (() => {
    "page": "缘之空"
   let incrementCallbackKey = 0
 
  /**
  * @param {JsonpConfig} config
  */
  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')), 15_000)
   })
   }
})()
 
jsonp({
  url: 'https://zh.moegirl.org/api.php',
   params: {
    action: 'parse',
    format: 'json',
    page: mw.config.get('wgPageName')
   }
   }
})
})
   .then(data => console.log(data.parse.text['*']))
   .then(data => {
   if (data.error) {
    throw new Error(data.error.info)
   } else {
    document.body.querySelector('moe').innerHTML = data.parse.text['*']
   }
  })
  .catch(err => {
  
  })
</script>
</script>
<style>
<style>

2022年2月25日 (五) 11:07的版本

Only for {{萌百页面嵌入}}