微件:SaltInPageCSSLoader:修订间差异

添加1,217字节 、​ 2023年4月29日 (星期六)
// Edit via Wikiplus
(// Edit via Wikiplus)
(// Edit via Wikiplus)
 
(未显示1个用户的10个中间版本)
<noinclude>
已弃用,请使用 <code><nowiki>{{#inline-css}}</nowiki></code> 解析器函数代替。
<pre><div nameid="test" class="salt InPageCSSLoader">&lt;nowikipre>
h1{
color: royalblue;
background-color: #f0f6ff;
}
&lt;/nowikipre></div>
{{#Widget:SaltInPageCSSLoader}}</pre>
<div nameid="test" class="salt InPageCSSLoader"><nowikipre>
h1{
color: royalblue;
background-color: #f0f6ff;
}
</nowikipre></div>
{{#Widget:SaltInPageCSSLoader}}
这个页面的标题(&lt;h1&gt;)变成了蓝字蓝底。
</noinclude><includeonly><stylescript defer>
(/**
* 搬运须知: 您必须在**显眼处**标识来源“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.
*
* 许可证: CC BY-NC-SA 4.0
*
* License: CC BY-NC-SA 4.0
*/
(function () {
function main() {
let ps = pageState() // 获取页面状态
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) {
// 去除标记
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, '') // 去除首尾的空行
// el.textContent = text
let handler = () => {
// 处理这个元素
document.head.appendChild(style)
}
if (ps == 0 || el.classList.contains('nopreview')) {
handler()
} else { // 页面编写者模式
el.textContent = text
highlightEl(el, '点击应用CSS(页面编写完毕后CSS将默认启用)')
el.addEventListener('click', handler)
* 1 - 编辑/预览页面 */
function pageState() {
if (typeof mw != 'undefined' && typeof mw.config != 'undefined' && typeof mw.config.get == 'function') {
switch (mw.config.get('wgAction')) {
case 'view':
}
}
if (document.readyState == 'loading') {
)()
document.addEventListener('DOMContentLoaded', main)
</style></includeonly>
} else {
main()
}
})()
</stylescript></includeonly>
维护员、​界面管理员、​巡查员、​监督员、​小部件编辑者
3,462

个编辑