preload.cjs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. const { contextBridge, ipcRenderer } = require('electron');
  2. // 在window加载完成时执行
  3. window.addEventListener('DOMContentLoaded', () => {
  4. console.log('预加载脚本已执行');
  5. try {
  6. // 使用更安全的方式添加调试信息
  7. const debugDiv = document.createElement('div');
  8. debugDiv.id = 'electron-debug';
  9. debugDiv.textContent = 'Electron已加载';
  10. debugDiv.style.position = 'fixed';
  11. debugDiv.style.bottom = '10px';
  12. debugDiv.style.right = '10px';
  13. debugDiv.style.padding = '5px';
  14. debugDiv.style.background = 'rgba(0,0,0,0.7)';
  15. debugDiv.style.color = 'white';
  16. debugDiv.style.zIndex = '9999';
  17. // 等待DOM完全加载
  18. setTimeout(() => {
  19. if (document.body) {
  20. document.body.appendChild(debugDiv);
  21. }
  22. }, 1000);
  23. } catch (e) {
  24. console.error('预加载脚本错误:', e);
  25. }
  26. });
  27. // 使用contextBridge安全地暴露API
  28. contextBridge.exposeInMainWorld('electronAPI', {
  29. versions: process.versions,
  30. isElectron: true,
  31. loadApp: (route) => ipcRenderer.send('load-app', route),
  32. platform: process.platform,
  33. saveSettings: (settings) => ipcRenderer.send('save-settings', settings),
  34. getSettings: () => ipcRenderer.invoke('get-settings')
  35. });