PageSourceSearch

https://fangg.netlify.app/

html fangg.netlify.app collected 2026-10-03 10:43:23 UTC 56,557 bytes, 1,161 lines download raw bytes

1<!DOCTYPE html>
2<html lang="zh-CN">
3<head>
4    <meta charset="UTF-8">
5<!-- This site is hosted on Netlify. Anyone can build and deploy a site
6     like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=08f275d4-afe0-4156-8ebe-3c13c4f1a03b
7     Netlify hosting facts for this site: static/SSR served via Netlify Edge. -->
8    <meta name="viewport" content="width=device-width, initial-scale=1.0">
9    <title>仕方的电脑</title>
10    
11    <!-- Favicon -->
12    <link rel="icon" type="image/svg+xml" href="icon/favicon.svg">
13    <link rel="shortcut icon" type="image/svg+xml" href="icon/favicon.svg">
14    
15    <!-- 外部 CSS 文件 -->
16    <link rel="stylesheet" href="css/main.css">
17    <link rel="stylesheet" href="css/desktop.css">
18    <link rel="stylesheet" href="css/windows.css">
19    <link rel="stylesheet" href="css/thoughts.css">
20    <link rel="stylesheet" href="css/context-menu.css">
21    <link rel="stylesheet" href="css/snake.css">
22    <link rel="stylesheet" href="css/notepad.css">
23    <link rel="stylesheet" href="css/calculator.css">
24    <link rel="stylesheet" href="css/album.css">
25    <link rel="stylesheet" href="css/practice.css">
26    <link rel="stylesheet" href="css/login.css">
27    <link rel="stylesheet" href="css/minesweeper.css">
28    <link rel="stylesheet" href="css/tetris.css">
29    <link rel="stylesheet" href="css/piano.css">
30    <link rel="stylesheet" href="css/image-compressor.css">
31    <link rel="stylesheet" href="css/2048.css">
32    <link rel="stylesheet" href="css/spaceInvaders.css">
33
34
35</head>
36<body>
37    <!-- 桌面區域 -->
38    <div class="desktop" id="desktop" style="display: none;">
39        <!-- 桌面圖示 -->
40        <!-- 个人相关 -->
41        <div class="desktop-icon" style="top: 20px; left: 20px;" onclick="openWindow('about')">
42            <div class="icon-image">
43                <img src="icon/aboutme.svg" alt="关于我" style="width: 32px; height: 32px;">
44            </div>
45            <div class="icon-text">关于我</div>
46        </div>
47        
48        <div class="desktop-icon" style="top: 20px; left: 120px;" onclick="openWindow('contact')">
49            <div class="icon-image">
50                <img src="icon/concat.svg" alt="联系方式" style="width: 32px; height: 32px;">
51            </div>
52            <div class="icon-text">联系方式</div>
53        </div>
54
55        <div class="desktop-icon" style="top: 20px; left: 220px;" onclick="window.open('https://fanghome.netlify.app/', '_blank')">
56            <div class="icon-image">
57                <img src="icon/mysite.svg" alt="我的网站" style="width: 32px; height: 32px;">
58            </div>
59            <div class="icon-text">我的网站</div>
60        </div>
61
62        <div class="desktop-icon" style="top: 20px; left: 320px;" onclick="openWindow('thoughts')">
63            <div class="icon-image">
64                <img src="icon/jishiben.svg" alt="随手记" style="width: 32px; height: 32px;">
65            </div>
66            <div class="icon-text">随手记</div>
67        </div>
68
69        <div class="desktop-icon" style="top: 20px; left: 420px;" onclick="openWindow('album')">
70            <div class="icon-image">
71                <img src="icon/photos.svg" alt="相册" style="width: 32px; height: 32px;">
72            </div>
73            <div class="icon-text">相册</div>
74        </div>
75
76        <div class="desktop-icon" style="top: 20px; left: 520px;" onclick="openWindow('practice')">
77            <div class="icon-image">
78                <img src="icon/design.svg" alt="设计练习" style="width: 32px; height: 32px;">
79            </div>
80            <div class="icon-text">设计练习</div>
81        </div>
82
83        <!-- 游戏相关 -->
84        <div class="desktop-icon" style="top: 130px; left: 20px;" onclick="openWindow('games')">
85            <div class="icon-image">
86                <img src="icon/game.svg" alt="小游戏" style="width: 32px; height: 32px;">
87            </div>
88            <div class="icon-text">小游戏</div>
89        </div>
90
91
92
93
94
95        <!-- 工具相关 -->
96        <div class="desktop-icon" style="top: 240px; left: 20px;" onclick="openWindow('calculator')">
97            <div class="icon-image">
98                <img src="icon/jisuanqi.svg" alt="计算器" style="width: 32px; height: 32px;">
99            </div>
100            <div class="icon-text">计算器</div>
101        </div>
102
103        <div class="desktop-icon" style="top: 240px; left: 120px;" onclick="openWindow('notes')">
104            <div class="icon-image">
105                <img src="icon/jishiben2.svg" alt="记事本" style="width: 32px; height: 32px;">
106            </div>
107            <div class="icon-text">记事本</div>
108        </div>
109
110        <div class="desktop-icon" style="top: 240px; left: 220px;" onclick="openWindow('spotify')">
111            <div class="icon-image">
112                <img src="icon/music.svg" alt="音乐播放器" style="width: 32px; height: 32px;">
113            </div>
114            <div class="icon-text">音乐播放器</div>
115        </div>
116
117        <div class="desktop-icon" style="top: 240px; left: 320px;" onclick="openWindow('compressor')">
118            <div class="icon-image">
119                <img src="icon/image.svg" alt="图片压缩" style="width: 32px; height: 32px;">
120            </div>
121            <div class="icon-text">图片压缩</div>
122        </div>
123
124
125
126        <div class="desktop-icon" style="top: 240px; left: 520px;" onclick="openWindow('ie')">
127            <div class="icon-image">
128                <img src="icon/ie.svg" alt="IE浏览器" style="width: 32px; height: 32px;">
129            </div>
130            <div class="icon-text">IE浏览器</div>
131        </div>
132
133        <div class="desktop-icon" style="top: 240px; left: 720px;" onclick="openWindow('bookmarks')">
134            <div class="icon-image">
135                <img src="icon/weblike.svg" alt="网址收藏" style="width: 32px; height: 32px;">
136            </div>
137            <div class="icon-text">网址收藏</div>
138        </div>
139
140        <div class="desktop-icon" style="top: 240px; left: 820px;" onclick="window.open('https://fangwx.netlify.app/', '_blank')">
141            <div class="icon-image">
142                <img src="icon/wx.svg" alt="微信" style="width: 32px; height: 32px;">
143            </div>
144            <div class="icon-text">微信</div>
145        </div>
146
147        <div class="desktop-icon" style="top: 240px; left: 920px;" onclick="window.open('https://x.com/faaaannng', '_blank')">
148            <div class="icon-image">
149                <div style="font-size: 32px;">𝕏</div>
150            </div>
151            <div class="icon-text">X</div>
152        </div>
153
154        <div class="desktop-icon" style="top: 240px; left: 1020px;" onclick="window.open('https://www.xiaohongshu.com/user/profile/6117873f000000000101cead', '_blank')">
155            <div class="icon-image">
156                <div style="font-size: 32px;">📖</div>
157            </div>
158            <div class="icon-text">小红书</div>
159        </div>
160
161        <div class="desktop-icon" style="top: 350px; left: 20px;" onclick="openWindow('recycle')">
162            <div class="icon-image">
163                <img src="icon/Trash.svg" alt="回收站" style="width: 32px; height: 32px;">
164            </div>
165            <div class="icon-text">回收站</div>
166        </div>
167        
168        <div class="desktop-icon" style="top: 350px; left: 120px;" onclick="triggerBSOD()">
169            <div class="icon-image">
170                <div style="font-size: 32px;">⚠️</div>
171            </div>
172            <div class="icon-text">
172绝对不要点</div>
173        </div>
174
175        <!-- 日常思考視窗 -->
176        <div class="window" id="thoughts-window" style="top: 50px; left: 100px; width: 600px; height: 400px; display: none;">
177            <div class="title-bar">
178                <div class="title-bar-text">
179                    日常思考
180                </div>
181                <div class="title-bar-controls">
182                    <div class="title-bar-button" onclick="minimizeWindow('thoughts')">_</div>
183                    <div class="title-bar-button" onclick="maximizeWindow('thoughts')">□</div>
184                    <div class="title-bar-button" onclick="closeWindow('thoughts')">×</div>
185                </div>
186            </div>
187            <div class="window-content">
188                <div class="menu-bar">
189                    <div class="menu-item">文件(F)</div>
190                    <div class="menu-item">编辑(E)</div>
191                    <div class="menu-item">查看(V)</div>
192                    <div class="menu-item" onclick="showAboutModal()">帮助(H)</div>
193                </div>
194                <div class="toolbar">
195                    <div class="win95-button toolbar-button">📁 打开</div>
196                    <div class="win95-button toolbar-button">💾 保存</div>
197                    <div class="toolbar-separator"></div>
198                    <div class="win95-button toolbar-button">🔍 搜索</div>
199                    <div class="win95-button toolbar-button">📧 邮件</div>
200                </div>
201                <div class="content-area">
202                    <!-- 内容区域会由 thoughts.js 动态填充 -->
203                </div>
204                <div class="status-bar">
205                    <div>就绪</div>
206                    <div>文章数量: 8</div>
207                    <div>最后更新: 2025年11月24日</div>
208                </div>
209            </div>
210        </div>
211        
212        <!-- 關於我視窗 -->
213        <div class="window" id="about-window" style="top: 100px; left: 200px; width: 420px; height: 440px; display: none;">
214            <div class="title-bar">
215                <div class="title-bar-text">
216                    关于我
217                </div>
218                <div class="title-bar-controls">
219                    <div class="title-bar-button" onclick="minimizeWindow('about')">_</div>
220                    <div class="title-bar-button" onclick="maximizeWindow('about')">□</div>
221                    <div class="title-bar-button" onclick="closeWindow('about')">×</div>
222                </div>
223            </div>
224            <div class="window-content">
225                <div class="menu-bar">
226                    <div class="menu-item">文件(F)</div>
227                    <div class="menu-item">编辑(E)</div>
228                    <div class="menu-item">查看(V)</div>
229                    <div class="menu-item" onclick="showAboutModal()">帮助(H)</div>
230                </div>
231                <div class="content-area">
232                    <h5>你好,我是仕方 👋</h5>
233                    <p style="margin-bottom: 12px;">一个热爱技术和创意的前端开发者,喜欢用代码构建有趣的东西。</p>
234
235                    <h5>技能专长</h5>
236                    <ul style="margin-bottom: 12px;">
237                        <li>前端开发 / HTML · CSS · JavaScript</li>
238                        <li>UI/UX 设计 / Figma</li>
239                        <li>像素艺术创作</li>
240                    </ul>
241
242                    <h5>兴趣爱好</h5>
243                    <ul>
244                        <li>复古游戏和像素艺术</li>
245                        <li>程序设计哲学</li>
246                        <li>技术写作</li>
247                        <li>音乐创作</li>
248                    </ul>
249                </div>
250                <div class="status-bar">
251                    <div>就绪</div>
252                    <div>最后更新: 2025年3月</div>
253                </div>
254            </div>
255        </div>
256        
257
258
259
260
261        <!-- 回收站視窗 -->
262        <div class="window" id="recycle-window" style="top: 100px; left: 150px; width: 500px; height: 400px; display: none;">
263            <div class="title-bar">
264                <div class="title-bar-text">
265                    回收站
266                </div>
267                <div class="title-bar-controls">
268                    <div class="title-bar-button" onclick="minimizeWindow('recycle')">_</div>
269                    <div class="title-bar-button" onclick="maximizeWindow('recycle')">□</div>
270                    <div class="title-bar-button" onclick="closeWindow('recycle')">×</div>
271                </div>
272            </div>
273            <div class="window-content">
274                <div class="menu-bar">
275                    <div class="menu-item">文件(F)</div>
276                    <div class="menu-item">编辑(E)</div>
277                    <div class="menu-item">查看(V)</div>
278                    <div class="menu-item" onclick="showAboutModal()">帮助(H)</div>
279                </div>
280                <div class="toolbar">
281                    <div class="win95-button toolbar-button">🔄 还原</div>
282                    <div class="win95-button toolbar-button">🗑️ 清空回收站</div>
283                    <div class="toolbar-separator"></div>
284                    <div class="win95-button toolbar-button">🔍 搜索</div>
285                </div>
286                <div class="content-area">
287                    <div class="empty-recycle-bin">
288                        <div style="text-align: center; padding: 20px;">
289                            <div style="font-size: 48px; margin-bottom: 10px;">🗑️</div>
290                            <p>回收站是空的</p>
291                        </div>
292                    </div>
293                </div>
294                <div class="status-bar">
295                    <div>就绪</div>
296                    <div>项目数量: 0</div>
297                    <div>总大小: 0 KB</div>
298                </div>
299            </div>
300        </div>
301
302        <!-- 聯絡方式視窗 -->
303        <div class="window" id="contact-window" style="top: 200px; left: 400px; width: 450px; height: 360px; display: none;">
304            <div class="title-bar">
305                <div class="title-bar-text">
306                    联系方式
307                </div>
308                <div class="title-bar-controls">
309                    <div class="title-bar-button" onclick="minimizeWindow('contact')">_</div>
310                    <div class="title-bar-button" onclick="maximizeWindow('contact')">□</div>
311                    <div class="title-bar-button" onclick="closeWindow('contact')">×</div>
312                </div>
313            </div>
314            <div class="window-content">
315                <div class="menu-bar">
316                    <div class="menu-item">文件(F)</div>
317                    <div class="menu-item">编辑(E)</div>
318                    <div class="menu-item">查看(V)</div>
319                    <div class="menu-item" onclick="showAboutModal()">帮助(H)</div>
320                </div>
321                <div class="content-area">
322                    <div style="margin-bottom: 13px;">
323                        <h5>邮箱</h5>
324                        <p>[email protected]</p>
325                    </div>
326                    <div style="margin-bottom: 13px;">
327                        <h5>微信</h5>
328                        <p>UXD700</p>
329                    </div>
330                    <div style="margin-bottom: 13px;">
331                        <h5>Twitter</h5>
332                        <p>@faaaannng</p>
333                    </div>
334                    <div style="margin-bottom: 13px;">
335                        <h5>主页</h5>
336                        <p>https://fang.wegic.app/home</p>
337                    </div>
338                </div>
339                <div class="status-bar">
340                    <div>就绪</div>
341                    <div>最后更新: 2025年8月15日</div>
342                </div>
343            </div>
344        </div>
345
346        <!-- 音樂播放器窗口 -->
347        <div class="window" id="spotify-window" style="top: 80px; left: 150px; width: 600px; height: auto; display: none;">
348            <div class="title-bar">
349                <div class="title-bar-text">
350                    🎵 音乐播放器
351                </div>
352                <div class="title-bar-controls">
353                    <div class="title-bar-button" onclick="minimizeWindow('spotify')">_</div>
354                    <div class="title-bar-button" onclick="maximizeWindow('spotify')">□</div>
355                    <div class="title-bar-button" onclick="closeWindow('spotify')">×</div>
356                </div>
357            </div>
358            <div class="window-content" style="padding: 8px;">
359                <iframe data-testid="embed-iframe" style="border-radius:0" src="https://open.spotify.com/embed/playlist/37i9dQZF1DWVUmQhB7PvFH?utm_source=generator&theme=0" width="100%" height="352" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>
360            </div>
361        </div>
362
363        
364
365        <!-- 记事本窗口 -->
366        <div class="window" id="notes-window" style="top: 60px; left: 120px; width: 500px; height: 400px; display: none;">
367            <div class="title-bar">
368                <div class="title-bar-text">
369                    📄 记事本
370                </div>
371                <div class="title-bar-controls">
372                    <div class="title-bar-button" onclick="minimizeWindow('notes')">_</div>
373                    <div class="title-bar-button" onclick="maximizeWindow('notes')">□</div>
374                    <div class="title-bar-button" onclick="closeWindow('notes')">×</div>
375                </div>
376            </div>
377            <div class="window-content">
378                <div class="menu-bar">
379                    <div class="menu-item">文件(F)</div>
380                    <div class="menu-item">编辑(E)</div>
381                    <div class="menu-item">格式(O)</div>
382                    <div class="menu-item">帮助(H)</div>
383                </div>
384                <div class="toolbar">
385                    <div class="win95-button toolbar-button" onclick="clearNotepad()">清空</div>
386                    <div class="win95-button toolbar-button" onclick="saveNotepad()">保存</div>
387                    <div class="toolbar-separator"></div>
388                    <div class="win95-button toolbar-button" onclick="toggleWordWrap()">自動換行</div>
389                </div>
390                <div class="notepad-content">
391                    <textarea id="notepad-textarea" spellcheck="false" placeholder="在此处输入文字..."></textarea>
392                </div>
393                <div class="status-bar">
394                    <div>就绪</div>
395                    <div>字數:0</div>
396                    <div>Ln 1, Col 1</div>
397                </div>
398            </div>
399        </div>
400
401        <!-- 记事本清空确认弹窗和遮罩 -->
402        <div id="notepad-modal-overlay" style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: none; z-index: 99999;"></div>
403        <div class="window" id="notepad-clear-confirm" style="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 300px; height: 20px; display: none; z-index: 100000;">
404            <div class="title-bar">
405                <div class="title-bar-text">
406                    ⚠️ 确认清空
407                </div>
408            </div>
409            <div class="window-content" style="padding: 16px;">
410                <div style="margin-bottom: 16px;">
411                    確定要清空所有內容嗎?此操作無法撤銷。
412                </div>
413                <div style="display: flex; justify-content: center; gap: 8px;">
414                    <button class="win95-button" onclick="confirmClearNotepad()">確定</button>
415                    <button class="win95-button" onclick="cancelClearNotepad()">取消</button>
416                </div>
417            </div>
418        </div>
419
420        <!-- 贪吃蛇游戏窗口 -->
421        <div class="window" id="snake-window" style="top: 50px; left: 100px; width: 400px; height: auto; display: none;">
422            <div class="title-bar">
423                <div class="title-bar-text">
424                    🐍 贪吃蛇
425                </div>
426                <div class="title-bar-controls">
427                    <div class="title-bar-button" onclick="minimizeWindow('snake')">_</div>
428                    <div class="title-bar-button" onclick="maximizeWindow('snake')">□</div>
429                    <div class="title-bar-button" onclick="closeWindow('snake')">×</div>
430                </div>
431            </div>
432            <div class="window-content">
433                <div class="menu-bar">
434                    <div class="menu-item">遊戲(G)</div>
435                    <div class="menu-item">設定(S)</div>
436                    <div class="menu-item">帮助(H)</div>
437                </div>
438                <div class="snake-game-container">
439                    <canvas id="snake-canvas" width="320" height="320"></canvas>
440                    <div class="game-controls">
441                        <div class="score-display">分數:<span id="snake-score">0</span></div>
442                        <div class="control-buttons">
443                            <div class="win95-button" onclick="startSnakeGame()">開始遊戲</div>
444                            <div class="win95-button" onclick="pauseSnakeGame()">暫停</div>
445                        </div>
446                    </div>
447                </div>
448                <!-- 游戏结束弹窗 -->
449                <div id="game-over-dialog" class="win95-dialog" style="display: none;">
450                    <div class="dialog-content">
451                        <div class="dialog-header">
452                            <div class="dialog-title">游戏结束</div>
453                        </div>
454                        <div class="dialog-body">
455                            <p>你的得分:<span id="final-score">0</span></p>
456                            <p>最高分:<span id="high-score">0</span></p>
457                        </div>
458                        <div class="dialog-footer">
459                            <button class="win95-button" onclick="closeGameOverDialog()">确定</button>
460                            <button class="win95-button" onclick="restartGame()">重新开始</button>
461                        </div>
462                    </div>
463                </div>
464                <div class="status-bar">
465                    <div>就绪</div>
466                    <div>最高分:0</div>
467                </div>
468            </div>
469        </div>
470
471        <!-- 小遊戲窗口 -->
472        <div class="window" id="games-window" style="top: 90px; left: 260px; width: 500px; height: 320px; display: none;">
473            <div class="title-bar">
474                <div class="title-bar-text">
475                    🎮 小游戏
476                </div>
477                <div class="title-bar-controls">
478                    <div class="title-bar-button" onclick="minimizeWindow('games')">_</div>
479                    <div class="title-bar-button" onclick="maximizeWindow('games')">□</div>
480                    <div class="title-bar-button" onclick="closeWindow('games')">×</div>
481                </div>
482            </div>
483            <div class="window-content" style="padding: 12px;">
484                <div class="games-grid">
485                    <div class="game-icon" onclick="openWindow('snake')">
486                        <div class="icon-image">🐍</div>
487                        <div class="icon-text">贪吃蛇</div>
488                    </div>
489                    <div class="game-icon" onclick="openWindow('minesweeper')">
490                        <div class="icon-image">
491                            <img src="icon/saolei.svg" alt="扫雷" style="width: 32px; height: 32px;">
492                        </div>
493                        <div class="icon-text">扫雷</div>
494                    </div>
495                    <div class="game-icon" onclick="openWindow('tetris')">
496                        <div class="icon-image">🧩</div>
497                        <div class="icon-text">俄罗斯方块</div>
498                    </div>
499                    <div class="game-icon" onclick="openWindow('piano')">
500                        <div class="icon-image">🎹</div>
501                        <div class="icon-text">钢琴</div>
502                    </div>
503                    <div class="game-icon" onclick="openWindow('2048')">
504                        <div class="icon-image">8️⃣</div>
505                        <div class="icon-text">2048</div>
506                    </div>
507                    <div class="game-icon" onclick="openWindow('space-invaders')">
508                        <div class="icon-image">🚀</div>
509                        <div class="icon-text">太空侵略者</div>
510                    </div>
511                </div>
512            </div>
513        </div>
514
515        <!-- 俄罗斯方块窗口 -->
516        <div class="window" id="tetris-window" style="top: 70px; left: 160px; width: 380px; height: 500px; display: none;">
517            <div class="title-bar">
518                <div class="title-bar-text">🧩 俄罗斯方块</div>
519                <div class="title-bar-controls">
520                    <div class="title-bar-button" onclick="minimizeWindow('tetris')">_</div>
521                    <div class="title-bar-button" onclick="maximizeWindow('tetris')">□</div>
522                    <div class="title-bar-button" onclick="closeWindow('tetris')">×</div>
523                </div>
524            </div>
525            <div class="window-content">
526                <div class="menu-bar">
527                    <div class="menu-item">遊戲(G)</div>
528                    <div class="menu-item">設定(S)</div>
529                    <div class="menu-item" onclick="showAboutModal()">帮助(H)</div>
530                </div>
531                <div class="tetris-container">
532                    <div class="tetris-side">
533                        <div class="tetris-label">分數</div>
534                        <div id="tetris-score" class="tetris-value">0</div>
535                        <div class="tetris-label" style="margin-top:8px;">行數</div>
536                        <div id="tetris-lines" class="tetris-value">0</div>
537                        <div class="tetris-label" style="margin-top:8px;">下一個</div>
538                        <canvas id="tetris-next" width="80" height="80"></canvas>
539                        <div class="tetris-controls">
540                            <button class="win95-button" onclick="startTetrisGame()">開始</button>
541                            <button class="win95-button" onclick="pauseTetrisGame()">暫停</button>
542                            <button class="win95-button" onclick="resetTetrisGame()">重置</button>
543                        </div>
544                    </div>
545                    <canvas id="tetris-canvas" width="200" height="400"></canvas>
546                </div>
547                <div class="status-bar">
548                    <div>就绪</div>
549                    <div>使用方向鍵移動,↑旋转,空白鍵加速</div>
550                </div>
551            </div>
552        </div>
553
554        <!-- 鋼琴窗口 -->
555        <div class="window" id="piano-window" style="top: 80px; left: 180px; width: 600px; height: 300px; display: none;">
556            <div class="title-bar">
557                <div class="title-bar-text">🎹 钢琴</div>
558                <div class="title-bar-controls">
559                    <div class="title-bar-button" onclick="minimizeWindow('piano')">_</div>
560                    <div class="title-bar-button" onclick="maximizeWindow('piano')">□</div>
561                    <div class="title-bar-button" onclick="closeWindow('piano')">×</div>
562                </div>
563            </div>
564            <div class="window-content">
565                <div class="menu-bar">
566                    <div class="menu-item">文件(F)</div>
567                    <div class="menu-item">编辑(E)</div>
568                    <div class="menu-item" onclick="showAboutModal()">帮助(H)</div>
569                </div>
570                <div class="piano-container">
571                    <div id="piano-keys" class="piano-keys"></div>
572                </div>
573                <div class="status-bar">
574                    <div>就绪</div>
575                    <div>鍵盤: Z/S/X/D/C/V/G/B/H/N/J/M/,/L/. /; /</div>
576                </div>
577            </div>
578        </div>
579
580        <!-- 圖片壓縮窗口 -->
581        <div class="window" id="compressor-window" style="top: 90px; left: 220px; width: 720px; height: 520px; display: none;">
582            <div class="title-bar">
583                <div class="title-bar-text">图片压缩</div>
584                <div class="title-bar-controls">
585                    <div class="title-bar-button" onclick="minimizeWindow('compressor')">_</div>
586                    <div class="title-bar-button" onclick="maximizeWindow('compressor')">□</div>
587                    <div class="title-bar-button" onclick="closeWindow('compressor')">×</div>
588                </div>
589            </div>
590            <div class="window-content">
591                <div class="menu-bar">
592                    <div class="menu-item">文件(F)</div>
593                    <div class="menu-item">编辑(E)</div>
594                    <div class="menu-item" onclick="showAboutModal()">帮助(H)</div>
595                </div>
596                <div class="compressor-container">
597                    <div class="uploader" id="compressor-drop">
598                        <input type="file" id="compressor-file" accept="image/*" />
599                                                 <div class="uploader-hint">拖拽图片到此处,或点击选择</div>
600                    </div>
601                    <div class="controls">
602                        <div class="control-row">
603                            <label>格式</label>
604                            <select id="compressor-format">
605                                <option value="image/jpeg">JPEG</option>
606                                <option value="image/webp">WEBP</option>
607                                <option value="image/png">PNG</option>
608                            </select>
609                        </div>
610                        <div class="control-row">
611                                                         <label>品质</label>
612                            <input type="range" id="compressor-quality" min="10" max="100" value="80" />
613                            <span id="compressor-quality-label">80%</span>
614                        </div>
615                        <div class="control-row">
616                            <label>最大宽度</label>
617                            <input type="number" id="compressor-maxwidth" value="1600" min="100" step="10" />
618                            <span class="hint">保持比例缩放</span>
619                        </div>
620                        <div class="control-row">
621                            <button class="win95-button" id="compressor-run">开始压缩</button>
622                            <a class="win95-button" id="compressor-download" download style="display:none;">下载</a>
623                        </div>
624                        <div class="stats" id="compressor-stats">未加载图片</div>
625                    </div>
626                    <div class="preview-grid">
627                        <div class="panel">
628                            <div class="panel-title">原图</div>
629                            <img id="compressor-original" alt="original preview" />
630                        </div>
631                        <div class="panel">
632                            <div class="panel-title">压缩后</div>
633                            <img id="compressor-output" alt="compressed preview" />
634                        </div>
635                    </div>
636                </div>
637            </div>
638        </div>
639    </div>
640    
641    <!-- 任務欄 -->
642    <div class="taskbar" style="display: none;">
643        <div class="win95-button start-button" onclick="toggleStartMenu()">
644            开始
645        </div>
646        
647        <div class="taskbar-item" id="thoughts-taskbar" onclick="focusWindow('thoughts')" style="display: none;">
648            📝 日常思考
649        </div>
650        
651        <div class="taskbar-item" id="about-taskbar" onclick="focusWindow('about')" style="display: none; z-index: 10;">
652            👤 关于我
653        </div>
654    
655        <div class="taskbar-item" id="contact-taskbar" onclick="focusWindow('contact')" style="display: none; z-index: 10;">
656            📧 联系方式
657        </div>
658
659        <div class="taskbar-item" id="games-taskbar" onclick="focusWindow('games')" style="display: none; z-index: 10;">
660            🎮 小游戏
661        </div>
662
663        <div class="taskbar-item" id="spotify-taskbar" onclick="focusWindow('spotify')" style="display: none; z-index: 10;">
664            🎵 音樂播放器
665        </div>
666
667        <div class="taskbar-item" id="recycle-taskbar" onclick="focusWindow('recycle')" style="display: none; z-index: 10;">
668            🗑️ 回收站
669        </div>
670
671        <div class="taskbar-item" id="snake-taskbar" onclick="focusWindow('snake')" style="display: none; z-index: 10;">
672            🐍 贪吃蛇
673        </div>
674
675        <div class="taskbar-item" id="minesweeper-taskbar" onclick="focusWindow('minesweeper')" style="display: none; z-index: 10;">
676            💣 扫雷
677        </div>
678
679        <div class="taskbar-item" id="album-taskbar" onclick="focusWindow('album')" style="display: none; z-index: 10;">
680            🖼️ 相册
681        </div>
682
683        <div class="taskbar-item" id="calculator-taskbar" onclick="focusWindow('calculator')" style="display: none; z-index: 10;">
684            🧮 计算器
685        </div>
686
687        <div class="taskbar-item" id="practice-taskbar" onclick="focusWindow('practice')" style="display: none; z-index: 10;">
688            📁 练习
689        </div>
690
691        <div class="taskbar-item" id="tetris-taskbar" onclick="focusWindow('tetris')" style="display: none; z-index: 10;">
692            🧩 俄罗斯方块
693        </div>
694        <div class="taskbar-item" id="piano-taskbar" onclick="focusWindow('piano')" style="display: none; z-index: 10;">
695            🎹 鋼琴
696        </div>
697        <div class="taskbar-item" id="compressor-taskbar" onclick="focusWindow('compressor')" style="display: none; z-index: 10;">
698            🗜️ 圖片壓縮
699        </div>
700        <div class="taskbar-item" id="bookmarks-taskbar" onclick="focusWindow('bookmarks')" style="display: none; z-index: 10;">
701            🔖 网址收藏
702        </div>
703        <div class="taskbar-item" id="ie-taskbar" onclick="focusWindow('ie')" style="display: none; z-index: 10;">
704            🌐 IE 浏览器
705        </div>
706        
707        <div class="taskbar-item" id="2048-taskbar" onclick="focusWindow('2048')" style="display: none; z-index: 10;">
708            🎮 2048
709        </div>
710
711
712
713        
714        <div class="taskbar-clock" id="clock">
715            12:00:00
716        </div>
717    </div>
718    
719    <!-- 開始選單 -->
720    <div class="start-menu" id="start-menu" style="display: none;">
721        <div class="start-menu-sidebar">
722            Windows <span style="font-weight: normal;">95</span>
723        </div>
724        <div class="start-menu-content">
725            <div class="start-menu-item" onclick="openWindow('thoughts')">
726                📝 日常思考
727            </div>
728            <div class="start-menu-item" onclick="openWindow('about')">
729                👤 关于我
730            </div>
731
732            <div class="start-menu-item" onclick="openWindow('contact')">
733                📧 联系方式
734            </div>
735            <div class="start-menu-separator"></div>
736            <div class="start-menu-item" onclick="openWindow('games')">
737                🎮 小游戏
738            </div>
739            <div class="start-menu-item" onclick="openWindow('spotify')">
740                🎵 音樂播放器
741            </div>
742            
743            <div class="start-menu-item" onclick="openWindow('album')">
744                🖼️ 相册
745            </div>
746            <div class="start-menu-item" onclick="openWindow('notes')">
747                📄 記事本
748            </div>
749
750            <div class="start-menu-item" onclick="openWindow('calculator')">
751                🧮 计算器
752            </div>
753            <div class="start-menu-item" onclick="openWindow('practice')">
754                📁 练习
755            </div>
756
757            <div class="start-menu-item" onclick="openWindow('compressor')">
758                🗜️ 圖片壓縮
759            </div>
760            <div class="start-menu-item" onclick="openWindow('bookmarks')">
761                🔖 网址收藏
762            </div>
763            <div class="start-menu-separator"></div>
764            <div class="start-menu-item" onclick="openWindow('recycle')">
765                🗑️ 回收站
766            </div>
767            <div class="start-menu-separator"></div>
768            <div class="start-menu-item">
769                ⚙️ 設定
770            </div>
771            <div class="start-menu-item" onclick="showAboutModal(); toggleStartMenu()">
772                ❓ 說明
773            </div>
774            <div class="start-menu-separator"></div>
775            <div class="start-menu-item" onclick="shutdown(); toggleStartMenu()">
776                🚪 關機
777            </div>
778        </div>
779    </div>
780    
781    <!-- 相册窗口 -->
782    <div class="window" id="album-window" style="top: 50px; left: 100px; width: 800px; height: 600px; display: none;">
783        <div class="title-bar">
784            <div class="title-bar-text">
785                🖼️ 相册
786            </div>
787            <div class="title-bar-controls">
788                <div class="title-bar-button" onclick="minimizeWindow('album')">_</div>
789                <div class="title-bar-button" onclick="maximizeWindow('album')">□</div>
790                <div class="title-bar-button" onclick="closeWindow('album')">×</div>
791            </div>
792        </div>
793        <div class="window-content">
794            <div class="menu-bar">
795                <div class="menu-item">文件(F)</div>
796                <div class="menu-item">编辑(E)</div>
797                <div class="menu-item">查看(V)</div>
798                <div class="menu-item">帮助(H)</div>
799            </div>
800            <div class="album-container">
801                <!-- 图片网格将在这里动态生成 -->
802            </div>
803            <div class="image-viewer">
804                <div class="viewer-content">
805                    <img src="" alt="Full size image">
806                    <button class="viewer-close" onclick="closeImageViewer()">×</button>
807                    <button class="viewer-nav viewer-prev" onclick="showPrevImage()">❮</button>
808                    <button class="viewer-nav viewer-next" onclick="showNextImage()">❯</button>
809                </div>
810            </div>
811            <div class="status-bar">
812                <div>就绪</div>
813            </div>
814        </div>
815    </div>
816
817    <!-- 练习相册窗口 -->
818    <div class="window" id="practice-window" style="top: 50px; left: 100px; width: 800px; height: 600px; display: none;">
819        <div class="title-bar">
820            <div class="title-bar-text">
821                📁 练习
822            </div>
823            <div class="title-bar-controls">
824                <div class="title-bar-button" onclick="minimizeWindow('practice')">_</div>
825                <div class="title-bar-button" onclick="maximizeWindow('practice')">□</div>
826                <div class="title-bar-button" onclick="closeWindow('practice')">×</div>
827            </div>
828        </div>
829        <div class="window-content">
830            <div class="menu-bar">
831                <div class="menu-item">文件(F)</div>
832                <div class="menu-item">编辑(E)</div>
833                <div class="menu-item">查看(V)</div>
834                <div class="menu-item">帮助(H)</div>
835            </div>
836            <div class="practice-container">
837                <!-- 图片网格将在这里动态生成 -->
838            </div>
839            <div class="image-viewer">
840                <div class="viewer-content">
841                    <img src="" alt="Full size image">
842                    <button class="viewer-close" onclick="closePracticeImageViewer()">×</button>
843                    <button class="viewer-nav viewer-prev" onclick="showPrevPracticeImage()">❮</button>
844                    <button class="viewer-nav viewer-next" onclick="showNextPracticeImage()">❯</button>
845                </div>
846            </div>
847            <div class="status-bar">
848                <div>就绪</div>
849            </div>
850        </div>
851    </div>
852
853    <!-- 网址收藏窗口 -->
854    <div class="window" id="bookmarks-window" style="top: 70px; left: 220px; width: 720px; height: 520px; display: none;">
855        <div class="title-bar">
856            <div class="title-bar-text">🔖 网址收藏</div>
857            <div class="title-bar-controls">
858                <div class="title-bar-button" onclick="minimizeWindow('bookmarks')">_</div>
859                <div class="title-bar-button" onclick="maximizeWindow('bookmarks')">□</div>
860                <div class="title-bar-button" onclick="closeWindow('bookmarks')">×</div>
861            </div>
862        </div>
863        <div class="window-content">
864            <div class="menu-bar">
865                <div class="menu-item">文件(F)</div>
866                <div class="menu-item">编辑(E)</div>
867                <div class="menu-item" onclick="showAboutModal()">帮助(H)</div>
868            </div>
869            <div style="flex: 1; min-height: 0; display: flex;">
870                <iframe id="bookmarks-iframe" title="bookmarks" style="border: 0; width: 100%; height: 100%; background: #dcdcdc;"></iframe>
871            </div>
872            <div class="status-bar">
873                <div>就绪</div>
874                <div>共若干链接</div>
875            </div>
876        </div>
877    </div>
878
879    <!-- 计算器窗口 -->
880    <div class="window" id="calculator-window" style="top: 50px; left: 100px; width: 280px; height: 400px; display: none;">
881        <div class="title-bar">
882            <div class="title-bar-text">
883                🧮 计算器
884            </div>
885            <div class="title-bar-controls">
886                <div class="title-bar-button" onclick="minimizeWindow('calculator')">_</div>
887                <div class="title-bar-button" onclick="maximizeWindow('calculator')">□</div>
888                <div class="title-bar-button" onclick="closeWindow('calculator')">×</div>
889            </div>
890        </div>
891        <div class="window-content">
892            <div class="menu-bar">
893                <div class="menu-item">查看(V)</div>
894                <div class="menu-item">编辑(E)</div>
895                <div class="menu-item">帮助(H)</div>
896            </div>
897            <div class="calculator-container">
898                <div class="calculator-display">
899                    <input type="text" id="calculator-input" readonly value="0">
900                </div>
901                <div class="calculator-buttons">
902                    <div class="calculator-row">
903                        <button class="win95-button calc-btn" onclick="clearCalculator()">C</button>
904                        <button class="win95-button calc-btn" onclick="clearEntry()">CE</button>
905                        <button class="win95-button calc-btn" onclick="backspace()">⌫</button>
906                        <button class="win95-button calc-btn operator" onclick="setOperator('/')">/</button>
907                    </div>
908                    <div class="calculator-row">
909                        <button class="win95-button calc-btn" onclick="appendNumber(7)">7</button>
910                        <button class="win95-button calc-btn" onclick="appendNumber(8)">8</button>
911                        <button class="win95-button calc-btn" onclick="appendNumber(9)">9</button>
912                        <button class="win95-button calc-btn operator" onclick="setOperator('*')">*</button>
913                    </div>
914                    <div class="calculator-row">
915                        <button class="win95-button calc-btn" onclick="appendNumber(4)">4</button>
916                        <button class="win95-button calc-btn" onclick="appendNumber(5)">5</button>
917                        <button class="win95-button calc-btn" onclick="appendNumber(6)">6</button>
918                        <button class="win95-button calc-btn operator" onclick="setOperator('-')">-</button>
919                    </div>
920                    <div class="calculator-row">
921                        <button class="win95-button calc-btn" onclick="appendNumber(1)">1</button>
922                        <button class="win95-button calc-btn" onclick="appendNumber(2)">2</button>
923                        <button class="win95-button calc-btn" onclick="appendNumber(3)">3</button>
924                        <button class="win95-button calc-btn operator" onclick="setOperator('+')">+</button>
925                    </div>
926                    <div class="calculator-row">
927                        <button class="win95-button calc-btn" onclick="appendNumber(0)">0</button>
928                        <button class="win95-button calc-btn" onclick="appendDecimal()">.</button>
929                        <button class="win95-button calc-btn" onclick="toggleSign()">±</button>
930                        <button class="win95-button calc-btn operator" onclick="calculate()">=</button>
931                    </div>
932                </div>
933            </div>
934            <div class="status-bar">
935                <div>就绪</div>
936            </div>
937        </div>
938    </div>
939
940    <!-- IE 瀏覽器窗口 -->
941    <div class="window" id="ie-window" style="top: 60px; left: 160px; width: 860px; height: 600px; display: none;">
942        <div class="title-bar">
943            <div class="title-bar-text">🌐 IE 浏览器</div>
944            <div class="title-bar-controls">
945                <div class="title-bar-button" onclick="minimizeWindow('ie')">_</div>
946                <div class="title-bar-button" onclick="maximizeWindow('ie')">□</div>
947                <div class="title-bar-button" onclick="closeWindow('ie')">×</div>
948            </div>
949        </div>
950        <div class="window-content">
951            <div class="menu-bar">
952                <div class="menu-item">文件(F)</div>
953                <div class="menu-item">查看(V)</div>
954                <div class="menu-item" onclick="showAboutModal()">帮助(H)</div>
955            </div>
956            <div class="toolbar" style="display: flex; align-items: center; gap: 6px; padding: 6px; background: #dcdcdc; border-bottom: 1px solid #808080;">
957                <button class="win95-button" id="ie-back" title="上一頁">←</button>
958                <button class="win95-button" id="ie-forward" title="下一頁">→</button>
959                <button class="win95-button" id="ie-refresh" title="重新整理">↻</button>
960                <button class="win95-button" id="ie-home" title="首頁">🏠</button>
961                <input id="ie-address-input" type="text" placeholder="輸入網址或關鍵字" style="flex: 1; height: 22px; border: 1px inset #808080; background: #fff; padding: 2px 6px;" />
962                <button class="win95-button" id="ie-go">前往</button>
963                <button class="win95-button" id="ie-open-external" title="在新分頁開啟">新分頁</button>
964            </div>
965            <div style="display: flex; flex-direction: column; height: 100%; min-height: 0;">
966                <iframe id="ie-iframe" title="ie-browser" sandbox="allow-scripts allow-forms allow-same-origin allow-popups allow-top-navigation-by-user-activation" style="border: 0; width: 100%; height: 100%; background: #ffffff;"></iframe>
967            </div>
968            <div class="status-bar">
969                <div id="ie-status-left">就绪</div>
970                <div id="ie-status-right" style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;"></div>
971            </div>
972        </div>
973    </div>
974
975
976
977    <!-- 通用关于弹窗 -->
978    <div id="about-modal" class="modal" style="display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #c0c0c0; border: 2px solid #808080; padding: 0; z-index: 1000;">
979        <div class="modal-content" style="width: 300px;">
980            <div class="title-bar" style="padding: 3px 2px 3px 3px; background: #000080; color: white;">
981                <div class="title-bar-text">About Friday OS</div>
982                <div class="title-bar-controls">
983                    <div class="title-bar-button" onclick="hideAboutModal()" style="color: white; cursor: pointer;">×</div>
984                </div>
985            </div>
986            <div style="padding: 20px; font-size: 12px;">
987                <p style="margin: 0 0 10px 0;">Author: fang</p>
988                <p style="margin: 0 0 10px 0;">Made with Cursor</p>
989                <p style="margin: 0 0 10px 0;">Version: 1.0.0</p>
990                <p style="margin: 0;">© 2025 All rights reserved</p>
991                <div style="text-align: center; margin-top: 20px;">
992                    <button class="win95-button" onclick="hideAboutModal()">OK</button>
993                </div>
994            </div>
995        </div>
996    </div>
997
998    <!-- 外部 JavaScript 文件 -->
999    
999<script src="js/main.js"></script>
999
1000    
1000<script src="js/windowManager.js"></script>
1000
1001    
1001<script src="js/contextMenu.js"></script>
1001
1002    
1002<script src="js/apps/thoughts.js"></script>
1002
1003    
1003<script src="js/apps/snake.js"></script>
1003
1004    
1004<script src="js/apps/notepad.js"></script>
1004
1005    
1005<script src="js/apps/calculator.js"></script>
1005
1006    
1006<script src="js/apps/album.js"></script>
1006
1007    
1007<script src="js/apps/practice.js"></script>
1007
1008    
1008<script src="js/apps/minesweeper.js"></script>
1008
1009    
1009<script src="js/apps/tetris.js"></script>
1009
1010    
1010<script src="js/apps/piano.js"></script>
1010
1011    
1011<script src="js/apps/imageCompressor.js"></script>
1011
1012    
1012<script src="js/sounds.js"></script>
1012
1013    
1013<script src="js/login.js"></script>
1013
1014
1015    
1015<script src="js/apps/ie.js"></script>
1015
1016    
1016<script src="js/apps/bookmarks.js"></script>
1016
1017    
1017<script src="js/apps/2048.js"></script>
1017
1018    
1018<script src="js/apps/spaceInvaders.js"></script>
1018
1019
1020
1021
1022    <!-- 2048游戏窗口 -->
1023    <div class="window" id="2048-window" style="top: 80px; left: 150px; width: 350px; height: auto; display: none;">
1024        <div class="title-bar">
1025            <div class="title-bar-text">
1026                🎮 2048
1027            </div>
1028            <div class="title-bar-controls">
1029                <div class="title-bar-button" onclick="minimizeWindow('2048')">_</div>
1030                <div class="title-bar-button" onclick="maximizeWindow('2048')">□</div>
1031                <div class="title-bar-button" onclick="closeWindow('2048')">×</div>
1032            </div>
1033        </div>
1034        <div class="window-content">
1035            <div class="menu-bar">
1036                <div class="menu-item">游戏(G)</div>
1037                <div class="menu-item">帮助(H)</div>
1038            </div>
1039            <div class="game-2048-container">
1040                <div class="game-2048-header">
1041                    <h1 class="game-2048-title">2048</h1>
1042                    <div class="game-2048-scores">
1043                        <div class="score-container">
1044                            <div class="score-label">分数</div>
1045                            <div class="score-value" id="game-2048-score">0</div>
1046                        </div>
1047                        <div class="score-container">
1048                            <div class="score-label">最佳</div>
1049                            <div class="score-value" id="game-2048-best-score">0</div>
1050                        </div>
1051                    </div>
1052                </div>
1053                <div class="game-2048-instructions">
1054                    使用方向键、鼠标拖动或触摸滑动来移动方块,相同数字的方块会合并!目标是达到2048!
1055                </div>
1056                <div class="game-2048-board" id="game-2048-board"></div>
1057                <div class="game-2048-controls">
1058                    <button class="game-2048-button" onclick="restart2048()">重新开始</button>
1059                </div>
1060                <div class="game-2048-help">
1061                    🎮 方向键控制 | 🖱️ 鼠标拖动 | 👆 触摸滑动
1062                </div>
1063            </div>
1064            <div class="status-bar">
1065                <div>就绪</div>
1066                <div>使用方向键控制</div>
1067            </div>
1068        </div>
1069    </div>
1070    
1071
1072
1073    <!-- 扫雷游戏窗口 -->
1074    <div class="window" id="minesweeper-window" style="top: 50px; left: 100px; width: auto; height: 460px; display: none;">
1075        <div class="title-bar">
1076            <div class="title-bar-text">
1077                💣 扫雷
1078            </div>
1079            <div class="title-bar-controls">
1080                <div class="title-bar-button" onclick="minimizeWindow('minesweeper')">_</div>
1081                <div class="title-bar-button" onclick="maximizeWindow('minesweeper')">□</div>
1082                <div class="title-bar-button" onclick="closeWindow('minesweeper')">×</div>
1083            </div>
1084        </div>
1085        <div class="window-content">
1086            <div class="menu-bar">
1087                <div class="menu-item">游戏(G)</div>
1088                <div class="menu-item">设置(S)</div>
1089                <div class="menu-item" onclick="showAboutModal()">帮助(H)</div>
1090            </div>
1091            <div id="minesweeper-container"></div>
1092            <div class="status-bar">
1093                <div>就绪</div>
1094                <div>最高分:0</div>
1095            </div>
1096        </div>
1097    </div>
1098
1099
1100    <!-- 太空侵略者游戏窗口 -->
1101    <div class="window" id="space-invaders-window" style="top: 50px; left: 100px; width: auto; height: auto; display: none;">
1102        <div class="title-bar">
1103            <div class="title-bar-text">
1104                🚀 太空侵略者
1105            </div>
1106            <div class="title-bar-controls">
1107                <div class="title-bar-button" onclick="minimizeWindow('space-invaders')">_</div>
1108                <div class="title-bar-button" onclick="maximizeWindow('space-invaders')">□</div>
1109                <div class="title-bar-button" onclick="closeWindow('space-invaders')">×</div>
1110            </div>
1111        </div>
1112        <div class="window-content">
1113            <div class="menu-bar">
1114                <div class="menu-item">游戏(G)</div>
1115                <div class="menu-item">帮助(H)</div>
1116            </div>
1117            <div class="space-invaders-container">
1118                <div class="space-invaders-ui">
1119                    <div>SCORE: <span id="space-score">00000</span></div>
1120                    <div>LEVEL: <span id="space-level">LV 1</span></div>
1121                    <div>LIVES: <span id="space-lives">♥♥♥</span></div>
1122                </div>
1123                <canvas id="space-invaders-canvas" width="480" height="600"></canvas>
1124                <div class="space-controls-hint">← → 移动 | SPACE 射击</div>
1125                
1126                <!-- 开始界面遮罩 -->
1127                <div id="space-start-screen" class="space-overlay" style="display: block;">
1128                    <h2>SPACE INVADERS</h2>
1129                    <p style="margin-bottom: 20px;">消灭所有外星人!</p>
1130                    <button class="space-btn" onclick="startSpaceGame()">START GAME</button>
1131                </div>
1132                
1133                <!-- 游戏结束遮罩 -->
1134                <div id="space-gameover-screen" class="space-overlay">
1135                    <h2>GAME OVER</h2>
1136                    <p style="margin-bottom: 20px;">FINAL SCORE: <span id="space-gameover-score">0</span></p>
1137                    <button class="space-btn" onclick="resetSpaceGame(); startSpaceGame()">TRY AGAIN</button>
1138                </div>
1139            </div>
1140            <div class="status-bar">
1141                <div>就绪</div>
1142                <div>按空格键开始</div>
1143            </div>
1144        </div>
1145    </div>
1146
1147    <!-- BSOD Screen -->
1148    <div id="bsod" class="bsod-screen">
1149        <div class="bsod-title">Windows</div>
1150        <div class="bsod-content">
1151            <div class="bsod-text">A fatal exception 0E has occurred at 0028:C0011E36 in VXD VMM(01) + 00010E36. The current application will be terminated.</div>
1152            <ul class="bsod-list">
1153                <li>Press any key to terminate the current application.</li>
1154                <li>Press CTRL+ALT+DEL again to restart your computer. You will lose any unsaved information in all applications.</li>
1155            </ul>
1156            <div class="bsod-center">Press any key to continue _</div>
1157        </div>
1158    </div>
1159
1160</body>
1161</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.