// globals.js - 包含所有需要在HTML中直接调用的全局函数
// 在此处存储全局状态
let appState = {
translations: null, // 将在初始化后从脚本中设置
currentLang: 'zh',
SORT_OPTIONS: null, // 将在初始化后从脚本中设置
};
// 注册全局函数
window.switchTab = function(tabName) {
// 调用主脚本中的函数
window.dispatchEvent(new CustomEvent('switchTab', { detail: { tabName } }));
};
window.searchMagnet = function() {
// 触发搜索事件
window.dispatchEvent(new CustomEvent('searchMagnet'));
};
window.copyToClipboard = function(text) {
// 触发复制事件
window.dispatchEvent(new CustomEvent('copyToClipboard', { detail: { text } }));
};
window.showSortMenu = function(button) {
// 触发排序菜单事件
window.dispatchEvent(new CustomEvent('showSortMenu', { detail: { button } }));
};
// 添加热门搜索词点击处理函数
window.searchWithTerm = function(term) {
// 触发热门搜索词点击事件
window.dispatchEvent(new CustomEvent('searchWithTerm', { detail: { term } }));
};
// 添加视频页面复制URL按钮点击事件
window.copyVideoUrl = function() {
const sourceUrlElement = document.getElementById('videoSourceUrl');
const sourceUrl = sourceUrlElement?.textContent;
if (!sourceUrl) return;
// 使用全局copyToClipboard函数
window.copyToClipboard(sourceUrl);
// 更新按钮状态
const copyButton = document.getElementById('copySourceUrl');
if (copyButton) {
copyButton.classList.add('copied');
const textElement = copyButton.querySelector('.tab-text');
if (textElement) {
const originalText = textElement.textContent;
textElement.textContent = appState.translations ?
appState.translations[appState.currentLang].copied :
'已复制';
setTimeout(() => {
copyButton.classList.remove('copied');
textElement.textContent = originalText;
}, 2000);
}
}
};
// 注册全局事件处理函数以便主脚本可以设置全局状态
window.setGlobalState = function(key, value) {
appState[key] = value;
};
// 为主脚本提供初始化方法
window.initializeGlobals = function(data) {
if (data.translations) appState.translations = data.translations;
if (data.currentLang) appState.currentLang = data.currentLang;
if (data.SORT_OPTIONS) appState.SORT_OPTIONS = data.SORT_OPTIONS;
};