打开/关闭菜单
32
245
25
891
植物大战僵尸杂交版Wiki
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
本Wiki为杂交版民间Wiki,不对杂交版官方产生影响

MediaWiki:Common.js:修订间差异

MediaWiki界面页面
无编辑摘要
无编辑摘要
第1行: 第1行:
// 确保只执行一次
(function() {
if (window.globalFooterAdded) return;
    // 如果已经添加过标记,说明整个页面生命周期内已经执行过
window.globalFooterAdded = true;
     if (window.__globalFooterAdded) {
 
        return;
// 延迟执行,确保 DOM 完全加载
    }
setTimeout(function() {
     if (document.getElementById('global-footer-links')) return;
      
      
    // 要插入的 HTML
     var footerHtml = '<div id="global-footer-links" style="width:100%; margin-top:20px; padding:15px 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; border-top:1px solid #ccc;">' +
     var footerHtml = '<div id="global-footer-links" style="width:100%; margin-top:20px; padding:15px 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; border-top:1px solid #ccc;">' +
         '<div><a href="https://new.pvzhe.wiki/index.php?title=特殊:创建账户&returnto=首页">加入我们</a></div>' +
         '<div><a href="https://new.pvzhe.wiki/index.php?title=特殊:创建账户&returnto=首页">加入我们</a></div>' +
第12行: 第11行:
         '</div>';
         '</div>';
      
      
     // 查找所有可能的插入位置
     // 插入函数
     var possibleTargets = [
     function insertFooter() {
         document.querySelector('#footer'),
        // 再次检查是否已经存在
         document.querySelector('#mw-footer'),
         if (document.getElementById('global-footer-links')) {
         document.querySelector('footer'),
            return true;
        document.querySelector('.footer'),
        }
         document.querySelector('#mw-content-text')?.parentNode,
       
        document.querySelector('.mw-body-content')?.parentNode
        // 查找页脚
    ];
         var footer = document.querySelector('#footer, #mw-footer, footer, .footer');
   
         if (footer) {
    // 找到第一个存在的元素
            footer.insertAdjacentHTML('beforebegin', footerHtml);
    var target = null;
            window.__globalFooterAdded = true;
    for (var i = 0; i < possibleTargets.length; i++) {
            return true;
        if (possibleTargets[i]) {
        }
             target = possibleTargets[i];
       
             break;
        // 备选:查找内容区
         var content = document.querySelector('#mw-content-text, .mw-body-content, #content');
        if (content) {
            content.insertAdjacentHTML('beforeend', footerHtml);
             window.__globalFooterAdded = true;
             return true;
         }
         }
       
        return false;
     }
     }
      
      
     // 如果找到目标,在它之前插入
     // 立即尝试插入(如果 DOM 已就绪)
     if (target) {
     if (document.readyState === 'loading') {
         target.insertAdjacentHTML('beforebegin', footerHtml);
         document.addEventListener('DOMContentLoaded', function() {
            // 延迟一点确保页脚元素已渲染
            setTimeout(function() {
                if (!insertFooter()) {
                    // 如果还没找到,用 MutationObserver 等待
                    var observer = new MutationObserver(function() {
                        if (insertFooter()) {
                            observer.disconnect();
                        }
                    });
                    observer.observe(document.body, { childList: true, subtree: true });
                    // 5秒后自动停止,避免无限等待
                    setTimeout(function() { observer.disconnect(); }, 5000);
                }
            }, 100);
        });
    } else {
        setTimeout(function() {
            if (!insertFooter()) {
                var observer = new MutationObserver(function() {
                    if (insertFooter()) {
                        observer.disconnect();
                    }
                });
                observer.observe(document.body, { childList: true, subtree: true });
                setTimeout(function() { observer.disconnect(); }, 5000);
            }
        }, 100);
     }
     }
}, 500);
})();

2026年3月22日 (日) 05:26的版本

(function() {
    // 如果已经添加过标记,说明整个页面生命周期内已经执行过
    if (window.__globalFooterAdded) {
        return;
    }
    
    // 要插入的 HTML
    var footerHtml = '<div id="global-footer-links" style="width:100%; margin-top:20px; padding:15px 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; border-top:1px solid #ccc;">' +
        '<div><a href="https://new.pvzhe.wiki/index.php?title=特殊:创建账户&returnto=首页">加入我们</a></div>' +
        '<div><a href="https://www.pvzhe.com/new">前往官网以了解更多游戏信息</a></div>' +
        '</div>';
    
    // 插入函数
    function insertFooter() {
        // 再次检查是否已经存在
        if (document.getElementById('global-footer-links')) {
            return true;
        }
        
        // 查找页脚
        var footer = document.querySelector('#footer, #mw-footer, footer, .footer');
        if (footer) {
            footer.insertAdjacentHTML('beforebegin', footerHtml);
            window.__globalFooterAdded = true;
            return true;
        }
        
        // 备选:查找内容区
        var content = document.querySelector('#mw-content-text, .mw-body-content, #content');
        if (content) {
            content.insertAdjacentHTML('beforeend', footerHtml);
            window.__globalFooterAdded = true;
            return true;
        }
        
        return false;
    }
    
    // 立即尝试插入(如果 DOM 已就绪)
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', function() {
            // 延迟一点确保页脚元素已渲染
            setTimeout(function() {
                if (!insertFooter()) {
                    // 如果还没找到,用 MutationObserver 等待
                    var observer = new MutationObserver(function() {
                        if (insertFooter()) {
                            observer.disconnect();
                        }
                    });
                    observer.observe(document.body, { childList: true, subtree: true });
                    // 5秒后自动停止,避免无限等待
                    setTimeout(function() { observer.disconnect(); }, 5000);
                }
            }, 100);
        });
    } else {
        setTimeout(function() {
            if (!insertFooter()) {
                var observer = new MutationObserver(function() {
                    if (insertFooter()) {
                        observer.disconnect();
                    }
                });
                observer.observe(document.body, { childList: true, subtree: true });
                setTimeout(function() { observer.disconnect(); }, 5000);
            }
        }, 100);
    }
})();