Widget:模板调用
<script type="text/javascript"> (window.RLQ = window.RLQ || []).push(['jquery', () => { $(function(){ console.log('模板调用ing......'); // 点击触发右侧页面调用 var liArr = $(".left-container .selection-li"); bindClickTrigger(); getPageContent(liArr[0]);
function bindClickTrigger(){
$.each(liArr, function (index,item) { item.addEventListener("click", function(event){ getPageContent(event.target) }); })
}
function getPageContent(event){
let pageName = "" + "/短信/"+ event.getAttribute('data-param'); $.get(`https://wiki.biligame.com/lysk/api.php`, { action:"parse", format:"json", page:pageName, prop:"text|headitems", }, function (res) { let data = res.parse.text['*']; //console.log(data); $('.messages-list>.right-container')[0].innerHTML = data; // 处理链接跳转问题 let tempA = $(".right-container .MessageName a")[0]; if(tempA){ tempA.removeAttribute('class'); tempA.setAttribute('href', "/lysk/" + pageName); } // 处理选项切换问题 handleSwitch(); dTab(); } )
}
//loadAndShowWikiContent();
// 加载模板
function loadAndShowWikiContent(roleName) {
var wikiContent = document.getElementById("content-area"); wikiContent.innerHTML = ""; // 调用MediaWiki的API获取wiki内容 var api = new mw.Api(); // 调用api.get方法,传入action, text参数,请求解析文本 api.get({ action: "parse", text: `


}`,
}).then(function (ret) { if (ret && ret.parse && ret.parse.text) { wikiContent.innerHTML = ret.parse.text['*']; // 加载短信内容功能所需js if (!window.jsLoad) { mw.loader.load("https://wiki.biligame.com/lysk/index.php?title=MediaWiki:朋友圈选项.js&action=raw&ctype=text/javascript", "text/javascript"); handleSwitch(); setTimeout(jsLoad,1000); } }
else wikiContent.innerHTML += "
加载内容失败:" + ret + "
";
});
}
function handleSwitch(){ // 获取所有的SwitchContainer const switchContainers = document.querySelectorAll('.SwitchContainer'); // 为所有SwitchContainer添加点击事件监听 switchContainers.forEach(container => {
// 监听点击事件 container.addEventListener('click', function (e) { // 检查点击的是否为按钮 if (e.target.classList.contains('btn')) { // 阻止事件冒泡 e.stopPropagation();
// 获取当前SwitchContainer内的按钮和内容 const buttons = container.querySelector('.BtnContainer').children; const contents = container.querySelector('.BtnContent').children;
// 获取点击的按钮的索引 const index = Array.from(buttons).indexOf(e.target);
// 切换激活状态 toggleActiveState(buttons, contents, index); } });
}); } function dTab() {
document.querySelectorAll(".d-tab-titles .d-tab-title").forEach((tab, i) => { tab.addEventListener("click", () => { // 找到当前 tab 所在的标题列表 const titleListContainer = tab.closest(".d-tab-titles"); //console.log(titleListContainer) if (!titleListContainer) return;
const titleList = Array.from(titleListContainer.querySelectorAll(".d-tab-title"));
// 找到对应的 .d-tab 容器和内容列表 const tabsContainer = titleListContainer.closest(".d-tab"); const tabContents = Array.from( tabsContainer.querySelectorAll(":scope > .d-tab-contents > .tab-content") );
// 如果只有一个 tab,直接切换 active 类 if (titleList.length === 1) { if (titleList[0].classList.contains("active")) { titleList[0].classList.remove("active"); tabContents[0].classList.remove("active"); tabContents[0].classList.add("hidden"); }else { titleList[0].classList.add("active"); tabContents[0].classList.add("active"); tabContents[0].classList.remove("hidden"); } return; } // 移除其他 tab 的 active 类 titleList.forEach((t) => t.classList.remove("active")); tab.classList.add("active");
// 获取当前 tab 的索引 const index = titleList.indexOf(tab);
// 关闭所有 tab 内容 tabContents.forEach((content) => content.classList.remove("active")); tabContents.forEach((content) => content.classList.add("hidden"));
// 打开对应索引的 tab 内容 if (tabContents[index]) { tabContents[index].classList.remove("hidden"); tabContents[index].classList.add("active"); } }); });
}
function toggleActiveState(buttons, contents, index) {
// 检查当前内容是否已经显示 const isActive = contents[index].classList.contains('active');
// 如果已经激活(显示),则移除激活(隐藏)状态 if (isActive) { //buttons[index].classList.remove('active'); //contents[index].classList.remove('active'); } else { // 否则,先移除所有按钮和内容的active类 Array.from(buttons).forEach(button => button.classList.remove('active')); Array.from(contents).forEach(content => content.classList.remove('active'));
// 然后为被点击的按钮添加active类,并显示对应的内容 buttons[index].classList.add('active'); contents[index].classList.add('active'); }
} }); }]); </script>