2011-07-15 36 views
4

我想讓用戶能夠增加/減少Web應用程序內部的呈現大小。使用Javascript對CTRL +和CTRL-在Firefox和Chrome中

CTRL+CTRL- 鍍鉻&火狐特徵(或CTRL 通過CTRL )是很方便的 - 但有從JavaScript以一種方式執行這些功能?

澄清: 我希望用戶能夠通過鼠標點擊,不按鍵來實現這一點,所以是這樣的:

function resize_rendering() { 
    // code that executes ctrl+ or crtl- 
} 
+1

我不認爲你可以模仿瀏覽器的這個功能,因爲它在瀏覽器內的個人設置。 CTRL +/-實際放大所有部分甚至圖像。要使用JavaScript來做到這一點,您必須增加網站上圖片和文字的大小。我所看到的是人們只是增加字體大小,使用Javascript ..但不是圖像。 –

回答

3

瀏覽器縮放級別是一個用戶設置,這是用於訪問目的;它並不打算讓網站開發人員知道或關心縮放級別是什麼,所以我希望你能夠完全按照你想要的方式進行操作。當然,以一種跨瀏覽器的方式很難做到這一點。

正常的做法是製作一個尺寸小工具,用於更改基本字體大小。

如果您網站中的所有字體大小都是em個單位,那麼您可以通過一次CSS更改來更改網站上所有文本的大小。

因此,您將在網站上有一組按鈕,使用Javascript將<body>元素的font-size設置爲(例如)12,14,16或18像素,具體取決於所點擊的元素。

這裏有技術的寫了起來:http://labnol.blogspot.com/2006/12/allow-site-visitors-to-change-font.html

+0

這就是我想的,這是一個無賴。謝謝 :( – OneNerd

0

這個庫here由John Resig的是一個jQuery插件,應該完成這項工作。有一些樣品。它很容易連接鍵的組合。

0

你可以攔截在一般的鍵盤事件處理函數(如window對象)上的按鍵,檢查,看它是否就是你要找的人,如果是這樣,則調用事件參數stopPropagation()(和返回假)以防止瀏覽器自行處理它。

然後您必須自己執行大小調整操作,例如通過使用JavaScript修改樣式表。

window.addEventListener('keydown', function(e) { 
    if (/* check e.keyCode etc. */) { 
     // modify global style to increase/decrease font size 
     e.stopPropagation(); 
     return false; 
    }); 
+0

我實際上正在尋找一種方法來做到這一點,而無需用戶使用按鍵(也許是一個滑塊,或其他類似的,他們可以使用) – OneNerd

+0

對不起,誤解了這個問題。當然也可以在網頁上使用控件來修改基本樣式表,正如我所建議的那樣。但我不知道是否可以調用瀏覽器的本地功能。 – devios1

+0

你沒有誤解,這是我的錯。我重新閱讀了我的問題,它很模糊,所以我補充說明。但感謝您的答案。 – OneNerd

1

你是不允許的設計。您無法通過Javascript更改用戶的瀏覽器設置。

你可以做其他的事情,比如修改所有的CSS的網頁上的規模都記錄下來,以模擬一個CTRL-,但僅此而已。

在某些瀏覽器中,您可以在瀏覽器執行前捕獲CTRL +/-,從而阻止這些事件發生。但是你不能做反對 - 你不能讓你的腳本發生這些事件。

相關問題