微件:SaltInPageCSSLoader:修订间差异

添加1,217字节 、​ 2023年4月29日 (星期六)
// Edit via Wikiplus
(// Edit via Wikiplus)
(// Edit via Wikiplus)
 
(未显示1个用户的10个中间版本)
第1行: 第1行:
<noinclude>
<noinclude>
<pre><div name="test" class="salt InPageCSSLoader">&lt;nowiki>
已弃用,请使用 <code><nowiki>{{#inline-css}}</nowiki></code> 解析器函数代替。
<pre><div id="test" class="salt InPageCSSLoader">&lt;pre>
h1{
h1{
     color: royalblue;
     color: royalblue;
     background-color: #f0f6ff;
     background-color: #f0f6ff;
}
}
&lt;/nowiki></div>
&lt;/pre></div>
{{#Widget:SaltInPageCSSLoader}}</pre>
{{#Widget:SaltInPageCSSLoader}}</pre>
<div name="test" class="salt InPageCSSLoader"><nowiki>
<div id="test" class="salt InPageCSSLoader"><pre>
h1{
h1{
     color: royalblue;
     color: royalblue;
     background-color: #f0f6ff;
     background-color: #f0f6ff;
}
}
</nowiki></div>
</pre></div>
{{#Widget:SaltInPageCSSLoader}}
{{#Widget:SaltInPageCSSLoader}}
这个页面的标题(&lt;h1&gt;)变成了蓝字蓝底。
这个页面的标题(&lt;h1&gt;)变成了蓝字蓝底。
</noinclude><includeonly><style defer>
</noinclude><includeonly><script defer>
(/**
/**
* 搬运须知: 您必须在**显眼处**标识来源“MCBBS Wiki”与作者“Salt_lovely”, **不**接受任何形式的简称或不署名。
* 搬运须知: 您必须在**显眼处**标识来源“MCBBS Wiki”与作者“Salt_lovely”, **不**接受任何形式的简称或不署名。
*
* Notice: You have to mark origin "MCBBS Wiki" and author "Salt_lovely" in CONSPICUOS PLACE, abbreviation or omissions are NOT allowed.
* Notice: You have to mark origin "MCBBS Wiki" and author "Salt_lovely" in CONSPICUOS PLACE, abbreviation or omissions are NOT allowed.
*
* 许可证: CC BY-NC-SA 4.0
* 许可证: CC BY-NC-SA 4.0
*
* License: CC BY-NC-SA 4.0
* License: CC BY-NC-SA 4.0
*/
*/
     function () {
(function () {
     function main() {
         let ps = pageState() // 获取页面状态
         let ps = pageState() // 获取页面状态
         let elems = HTMLElemsFliter(Array.from(document.querySelectorAll('.salt.InPageCSSLoader')))
         let elems = HTMLElemsFliter(Array.from(document.querySelectorAll('.salt.InPageCSSLoader')))
        if (elems.length < 1) { console.log('[SaltInPageCSSLoader]未检测到页内CSS'); return } else { console.log('[SaltInPageCSSLoader]检测到页内CSS, 共计' + elems.length + '个') }
         for (let el of elems) {
         for (let el of elems) {
             // 去除标记
             // 去除标记
             el.classList.remove('InPageCSSLoader')
             el.classList.remove('InPageCSSLoader')
            el.classList.remove('SaltCSS')
            let toolbar = el.querySelector('.toolbar') // Prism处理
            if (toolbar) { toolbar.remove() } // Prism处理
            // 根据id查重(MW不支持id、class之外其他可以存放字符串的属性)
            if (el.hasAttribute('id')) {
                let id = el.getAttribute('id') || ''
                if (document.head.querySelector( 'style#' + id )) {
                    console.log('[SaltInPageCSSLoader]检测到重复CSS id: ' + id)
                    el.removeAttribute('id')
                    el.style.display = 'none'
                    continue
                }
            }
             // 内容简单处理
             // 内容简单处理
             let text = (el.textContent || '').replace(/^\n+|\n+$/gm, '') // 去除首尾的空行
             let text = (el.textContent || '').replace(/^\n+|\n+$/gm, '') // 去除首尾的空行
             el.textContent = text
             // el.textContent = text
             let handler = () => {
             let handler = () => {
                 // 处理这个元素
                 // 处理这个元素
第54行: 第67行:
                 document.head.appendChild(style)
                 document.head.appendChild(style)
             }
             }
             if (ps == 0) {
             if (ps == 0 || el.classList.contains('nopreview')) {
                 handler()
                 handler()
             } else { // 页面编写者模式
             } else { // 页面编写者模式
                el.textContent = text
                 highlightEl(el, '点击应用CSS(页面编写完毕后CSS将默认启用)')
                 highlightEl(el, '点击应用CSS(页面编写完毕后CSS将默认启用)')
                 el.addEventListener('click', handler)
                 el.addEventListener('click', handler)
第74行: 第88行:
         *  1 - 编辑/预览页面 */
         *  1 - 编辑/预览页面 */
         function pageState() {
         function pageState() {
             if (mw && mw.config && typeof mw.config.get == 'function') {
             if (typeof mw != 'undefined' && typeof mw.config != 'undefined' && typeof mw.config.get == 'function') {
                 switch (mw.config.get('wgAction')) {
                 switch (mw.config.get('wgAction')) {
                     case 'view':
                     case 'view':
第98行: 第112行:
         }
         }
     }
     }
)()
    if (document.readyState == 'loading') {
</style></includeonly>
        document.addEventListener('DOMContentLoaded', main)
    } else {
        main()
    }
})()
</script></includeonly>
维护员、​界面管理员、​巡查员、​监督员、​小部件编辑者
3,469

个编辑