c).then(function() { alert('链接已复制到剪贴板'); }); } else { // 备用方案 prompt('复制此链接:', contentEl.src); } } toggleMoreMenu(); } // 在新窗口打开当前页面 function openInNewWindow() { var contentEl = document.getElementById('btmNavIframeContent'); if (contentEl && contentEl.src) { window.open(contentEl.src, '_blank'); } toggleMoreMenu(); } // 关闭iframe function closeIframe() { var iframe = document.getElementById('btmNavIframe'); var contentEl = document.getElementById('btmNavIframeContent'); var menuBar = document.getElementById('btmNavMenu'); if (iframe && contentEl) { // 隐藏更多菜单和加载动画 var moreMenu = document.getElementById('btmNavMoreMenu'); var loadingEl = document.getElementById('btmNavLoading'); if (moreMenu) { moreMenu.style.display = 'none'; } if (loadingEl) { loadingEl.style.display = 'none'; } // 移除所有iframe类 iframe.classList.remove('btm-nav-fullscreen'); iframe.classList.remove('btm-nav-with-menu'); iframe.style.display = 'none'; contentEl.src = ''; // 重置iframe样式到默认状态 iframe.style.top = '0'; iframe.style.bottom = 'auto'; iframe.style.height = '100vh'; iframe.style.left = '50%'; iframe.style.width = '100vw'; iframe.style.maxWidth = '760px'; iframe.style.transform = 'translateX(-50%)'; // 重置内容区域高度 contentEl.style.height = 'calc(100% - 35px)'; // 恢复菜单栏显示 if (menuBar) { menuBar.style.display = 'block'; } } } /* ===== 全局控制函数 ===== */ // 关闭栏控制 function enableCloseBar() { globalSettings.closeBar.enabled = true; } function disableCloseBar() { globalSettings.closeBar.enabled = false; } function setDefaultCloseBar(show) { globalSettings.closeBar.defaultShow = show; } function setMenuCloseBar(menuId, show) { for (var i = 0; i < menuConfig.length; i++) { if (menuConfig[i].id === menuId) { menuConfig[i].showCloseBar = show; break; } } } // 菜单栏控制 function enableMenuBar() { globalSettings.menuBar.enabled = true; var menuBar = document.getElementById('btmNavMenu'); if (menuBar) menuBar.style.display = 'block'; } function disableMenuBar() { globalSettings.menuBar.enabled = false; var menuBar = document.getElementById('btmNavMenu'); if (menuBar) menuBar.style.display = 'none'; } function setDefaultMenuBar(show) { globalSettings.menuBar.defaultShow = show; } function setMenuMenuBar(menuId, show) { for (var i = 0; i < menuConfig.length; i++) { if (menuConfig[i].id === menuId) { menuConfig[i].showMenuBar = show; break; } } } // 颜色控制函数 function setGlobalActiveColor(color) { globalSettings.colors.activeColor = color; // 重新应用当前选中菜单的颜色 var currentActiveItem = document.querySelector('.btm-nav-item.active'); if (currentActiveItem) { var activeId = currentActiveItem.getAttribute('data-id'); setActive(activeId); } } function setMenuActiveColor(menuId, color) { for (var i = 0; i < menuConfig.length; i++) { if (menuConfig[i].id === menuId) { menuConfig[i].activeColor = color; // 如果这个菜单当前是选中状态,立即应用新颜色 if (menuConfig[i].active) { setActive(menuId); } break; } } } // 设置安全区域背景色 function setSafeAreaBackground(color) { if (color) { globalSettings.colors.safeAreaBackground = color; // 更新CSS中的背景色 var style = document.createElement('style'); style.textContent = ` @supports (padding: max(0px)) { body::before { background: ${color} !important; } } `; document.head.appendChild(style); } } // 点击其他地方关闭更多菜单 document.addEventListener('click', function(e) { var moreMenu = document.getElementById('btmNavMoreMenu'); var moreButton = document.querySelector('.btm-nav-iframe-more'); if (moreMenu && moreButton && moreMenu.style.display === 'block' && !moreMenu.contains(e.target) && !moreButton.contains(e.target)) { moreMenu.style.display = 'none'; } }); // 初始化 function init() { generateMenu(); // 设置安全区域背景色 setSafeAreaBackground(globalSettings.colors.safeAreaBackground); } /* ===================================================== * 全局控制函数 * ===================================================== * 这些函数暴露给全局作用域,可以在页面中直接调用 * 用于动态控制菜单栏的行为和外观 * ===================================================== */ // 关闭栏控制函数 window.enableCloseBar = enableCloseBar; // 启用关闭栏功能 window.disableCloseBar = disableCloseBar; // 禁用关闭栏功能 window.setDefaultCloseBar = setDefaultCloseBar; // 设置关闭栏默认显示状态 window.setMenuCloseBar = setMenuCloseBar; // 设置特定菜单项的关闭栏显示状态 // 菜单栏控制函数 window.enableMenuBar = enableMenuBar; // 启用菜单栏功能 window.disableMenuBar = disableMenuBar; // 禁用菜单栏功能 window.setDefaultMenuBar = setDefaultMenuBar; // 设置菜单栏默认显示状态 window.setMenuMenuBar = setMenuMenuBar; // 设置特定菜单项的菜单栏显示状态 // 颜色和外观控制函数 window.setGlobalActiveColor = setGlobalActiveColor; // 设置全局选中状态颜色 window.setMenuActiveColor = setMenuActiveColor; // 设置特定菜单项的选中颜色 window.setSafeAreaBackground = setSafeAreaBackground; // 设置安全区域背景色 // 初始化菜单 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }