訪客留言簿

星期一, 9月 08, 2008

讓 Firefox 不要新分頁開不停的方法

前言

以前一直覺得用 Firefox 不會被迫開新視窗,只會開新分頁好棒的,但是連新分頁都不必被迫開的話,爽度更高呀!

為何會一直開出新分頁

這裡得要懂點基本的 HTML 知識,還要知道 Firefox 會何會因為這個 HTML 內容而開新分頁。

首先,HTML 中,是可以由設計者端單方面要求使用者端開新視窗的,而這一般是在點擊超連結文字(或圖片)時才會執行的,用途……在現在大家用慣有分頁的瀏覽器時,其實很難說是有用的功能,不過當時會希望另開一個視窗,跟原本視窗的內容對照,這類的情況可能就會派上用場。

再來是 Firefox 為何要因為 HTML 開新視窗的語法,而打開新分頁的原因。任何程式,只要執行,就會在系統記憶體中預先佔掉一大塊區域,而大部分程式在開啟新視窗時,這預先分配卻不用完的區域只會越來越多。(大概是這樣)

所以 Firefox 從 1.5 開始,都是漸漸朝向避免開一個新的視窗出來,所以才把開新視窗的語法,調整成也能開在新分頁中。(2.0 後都是預設開到新分頁,但也能調回成開新視窗,另外這裡要說明一下,「並沒有開新分頁的 HTML 語法」。)

然後,上面講的開新視窗的 HTML 語法,一般最常見到的就是 <a href="[URL]" target="_blank">

target 的各種用途、TargetKiller 擴充套件

target 屬性,是作用在超連結錨點 a 元素上的,這可以單方面改變使用者開啟頁面時的瀏覽習慣。(在使用 frameset/iframe 設計的多框架網頁算是很重要的功能)

不過 XHTML 網頁規範偏向把這屬性廢掉,交還給使用者自行決定點擊超連結後,網頁要開在哪裡。(主要還是因為螢幕朗讀軟體會被 target="_blank" 開新空白視窗的行為影響,讓部分使用者找不到回上一頁的方法的樣子……雖然大多數的使用者只會覺得一直開新視窗或分頁很煩而已啦。)

而 TargetKiller ,是可以讓使用者端控制 target 行為的工具,不過預設值主要是把開新視窗(照 Fx 預設值是新分頁)的情況減少,想要處理 target 屬性中,除 _blank 和 _new 以外的值的話,還是得自己新增。

但是 TargetKiller 預設值是把點擊後新開視窗的行為砍掉,改成依瀏覽器預設行為的「開在同一頁框」,也就是說,有框架頁的話,就只會開在點下超連結的那個框架頁中。(順帶一提,JavaScript 也能控制相關的瀏覽行為,不過這擴充套件目前並不管那部分的。)

雖然也會有人覺得直接開在同一頁框中挺不錯的,不過有人可能也會希望直接用整個網頁來讀取,這時也能靠 TargetKiller 內的設定來處理。

設定 TargetKiller 處理 target 的方式

安裝好後,進 Firefox 上方選單工具列的「工具 → 附加元件 → 擴充套件」中找到 TargetKiller ,雙擊開啟設定畫面。

【圖片:設定 TargetKiller 處理 target 的畫面】

在「Targets」這項設定頁面中,是讓你輸入 target 屬性中要禁用的值,「_blank」就是開新的空白視窗來開啟網站,「_new」印象中好像也是類似的。其它的你可以自己開網頁原始碼研究一下,只要搜尋會讓你開出新視窗、或開在指定框架頁中的那段超連結文字的位置,把前後有出現的 target 屬性,裡面用到的值拿來實驗一下就行。(不過前面也說過,部分框架頁多少是有必要用這方便瀏覽的,使用時還是自己用得方便最重要。)

而在「Targets」頁面最下面,有個可勾選的確認選項「Overwrite(覆寫)」,跟一個文字輸入欄位,這是讓你輸入一個 target 屬性要用的值,來取代你上面禁用掉的那些值。一般來說是用「_top」在目前分頁內開啟超連結目標,但是你喜歡用別的也可以,記得那欄位只能填一個值進去就好。

另外如果使用的是非規格內的值,如 newwin 之類的,這通常是開到指定名稱的框架頁的意思,但是沒有這種框架頁存在時,好像就會另開新視窗,也就是說一些使用 target 但 TargetKiller 會失效的情況,可能就是因為有使用了非規格內的值。

設定 TargetKiller 處理例外網站的方式

【圖片:設定 TargetKiller 處理例外網站的畫面】

一樣是在 TargetKiller 的設定畫面,這次換「Whitelist/Blacklist」一頁,這裡可以設定碰上哪些網站時,要停用這個擴充套件的功能(Blacklist),或是停用 TargetKiller 後,只有在碰上哪些網站時,才要啟用(Whitelist)。(還有設定完記得重新載入一下網頁,才會改寫網頁內容。)

基本上只能輸入網址中的關鍵字而已,沒辦法設定太細。另外每一筆資料旁有個 RegExp 的確認選項,那是指「Regular Expression(正規表示式)」,一般人應該也不知道是啥,所以知道的自己看要不要用就好,不是會影響很大的東西。

2 comments:

Unknown 提到...

hi
hello
how was your day?
i liked your blog
you are fantastic!!!

really nice blog
fabulous fantastic
bye
take care
see you

wini 提到...

Thank you, BECK.

I am happy to hear that someone likes this blog.

Usually a website filled a lot of words like here, will not be readable for foreigners.

So anyway, glad to meet you. :)

 

本站著作(不包含圖片、影音以及回應留言)係採用 Creative Commons 姓名標示-非商業性-相同方式分享 2.5 台灣 (中華民國) 授權條款授權