微件:SaltInPageCSSLoader:修订间差异

添加441字节 、​ 2021年5月3日 (星期一)
CSS去重
(.)
(CSS去重)
第1行: 第1行:
<noinclude>
<noinclude>
<pre><div name="test" class="salt InPageCSSLoader">&lt;pre>
<pre><div id="test" class="salt InPageCSSLoader">&lt;pre>
h1{
h1{
     color: royalblue;
     color: royalblue;
第7行: 第7行:
&lt;/pre></div>
&lt;/pre></div>
{{#Widget:SaltInPageCSSLoader}}</pre>
{{#Widget:SaltInPageCSSLoader}}</pre>
<div name="test" class="salt InPageCSSLoader"><pre>
<div id="test" class="salt InPageCSSLoader"><pre>
h1{
h1{
     color: royalblue;
     color: royalblue;
第32行: 第32行:
             let toolbar = el.querySelector('.toolbar') // Prism处理
             let toolbar = el.querySelector('.toolbar') // Prism处理
             if (toolbar) { toolbar.remove() } // Prism处理
             if (toolbar) { toolbar.remove() } // Prism处理
            // 根据id查重(MW不支持id、class之外其他可以存放字符串的属性)
            if (el.hasAttribute('id'))
                if (document.querySelector( 'style#' + (el.getAttribute('id') || ''))) {
                    el.removeAttribute('id')
                    console.log('[SaltInPageCSSLoader]检测到重复CSS' + (el.getAttribute('id') || ''));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 = () => {
                 // 处理这个元素
                 // 处理这个元素
第58行: 第64行:
                 handler()
                 handler()
             } else { // 页面编写者模式
             } else { // 页面编写者模式
                el.textContent = text
                 highlightEl(el, '点击应用CSS(页面编写完毕后CSS将默认启用)')
                 highlightEl(el, '点击应用CSS(页面编写完毕后CSS将默认启用)')
                 el.addEventListener('click', handler)
                 el.addEventListener('click', handler)
             }
             }
             //el.style.whiteSpace = 'pre'
             el.style.whiteSpace = 'pre'
         }
         }
         /**滤出数组中所有HTMLElement */
         /**滤出数组中所有HTMLElement */