bugfix250107.1
全站通知:

Widget:模板调用

来自恋与深空WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

<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: `



日常
剧情
活动
其他
        鸣谢-星星.png鸣谢鸣谢-星星.png

        }`,

           }).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>