我最近比較安靜,我知道——但別擔心,我沒有忘記你們,也沒有忘記你們有多喜歡在網路上看到一些超蠢的點子!
這個點子是我在跟一位同事聊天時冒出來的,我當時說:「你知道你可以從一個瀏覽器視窗控制另一個視窗,對吧?」
原本那是個很合理的想法,用來檢查失效連結,然後一個接一個確認它們是否正常運作(而且不會有 iFrame 可能帶來的問題——文章後面有個示範)……但接著我意識到,這是網頁世界裡少數我還沒拿來亂搞的部分!
我原本在想,要怎麼做出一個小遊戲,包含一個控制視窗和一個遊戲視窗,然後我突然想到……為什麼要把自己限制在只有兩個視窗?
於是就有了這個可怕的點子!
你可能不知道,只要有一些使用者互動,並且使用者允許彈出視窗,你就能對瀏覽器視窗有非常多的控制權。
你可以定義視窗大小(在最小尺寸有一定限制的前提下)、位置等等。
而且你還可以替視窗命名,這樣你就能在程式裡一直引用它,讓多個視窗移動到你想要的位置!
有了這兩件事,我們就有了大量製造混亂的機會!
控制方式是方向鍵。
你必須在按下「開始遊戲」後接受彈出視窗(在網址列中),並選擇「一律允許來自……的彈出式視窗」。
僅在 Windows 上的 Chrome 測試過——其他瀏覽器/作業系統組合就祝你好運了!
不要點任何東西!只要使用方向鍵。
當遊戲結束時,記得按一下頂部高分視窗中的「清除所有視窗」,不然你可能會坐在那裡關掉一堆隨機視窗很久!哈哈。
完成後請在留言區分享你的螢幕截圖和高分!
https://codepen.io/editor/GrahamTheDev/pen/019f90a9-1ed9-7d61-927e-31dd5256c79e
如果你現在沒辦法試玩,這裡先附上一張截圖。

雖然那真的很蠢,但你還是可以用它做一些非常有用的事。
就像我在前言裡說的,我們在工作上有一個實際用途,希望也能給你一些靈感。
我們正在檢查第三方網站上的失效連結。
問題在於,有些內容是 SPA(單頁應用程式),所以即使頁面壞掉了,我們還是會拿到 200 HTTP 回應標頭;有些內容則被付費牆擋住(所以我們可以確認頁面存在,但不能保證付費牆後面的內容仍然存在)。
因此,我們想要有一個待檢查專案的佇列,然後點擊佇列中的某個專案時,會開啟目標頁面,讓我們可以檢查它、登入等等。
我們可以嘗試在單一瀏覽器視窗裡完成這件事,但那就需要用到 iFrame。而且如果你不知道的話,有些網站可以停用 iFrame(它們可以阻止你把他們的網站顯示在你網站的 iFrame 裡)。
所以,若要更穩健,我們可以改用視窗。
我們可以開啟兩個視窗:左邊一個較小的視窗,放要檢查的頁面清單;右邊一個視窗,會根據我們在第一個視窗中點了什麼而被控制。
在左邊視窗點一下專案,就更新右邊視窗的 URL——完全不用 iFrame 的魔法!
更棒的是,我們還可以調整視窗大小,把它們鋪滿整個螢幕,讓它們看起來幾乎就像一個應用程式一樣!
點左邊視窗中的專案,它們會變更右側面板中的 URL。
請在左側面板中適當標記所有正常與異常的頁面!
https://codepen.io/editor/GrahamTheDev/pen/019f910d-965b-7c08-839f-44ad8fac4c8b
這讓你想到什麼新點子?
在編輯器裡,每個工具各自一個視窗?
多螢幕應用程式(因為你也可以偵測某人有幾個螢幕,然後把東西放到第二、第三螢幕上)。
告訴我:a) 你在貪食蛇拿到多少分(前提是能正常運作),以及 b) 這篇文章讓你想到哪些點子!