怎樣在Web開發中完美控制IE標題欄

2021-04-17 00:23:27 字數 1816 閱讀 5154

ie以及任何目前瀏覽器的

標題欄,原本都應該是由這個html標籤來控制的,當然現在仍然也是。只是目前的鬼趨勢是,你最好不要再重新整理你的網頁頁面了,然後還需要接受使用者的任意蹂躪。這也就是傳說中神龍見首不見尾,殺人於無影無形的悖時ajax技術!

在瀏覽器的標題欄中顯示貼切的頁面標題,是乙個網頁專業的表現,同時也能對搜尋引擎友好。當然如果放上適當的提示資訊,也會很有意義。那麼怎麼"動態"的來定製這個標題內容呢?

我們知道使用asp動態修改瀏覽器title,大概是這樣的語句:

<% = generatetitle %>

而在asp.net 1.1中,除了仍可以使用上面的方法外,我們多了乙個看起來"很美"的方法:

in aspx page:

in cs file:

protected htmlgeneralcontrol clttitle;

. . .

clttitle.innerhtml = "birdshome's homepage";

今天到了asp.net 2.0時代,除了上面的兩種方法,我們還可以更容易的修改內容:

page.title = "birdshome's homepage";

不過上面的"動態"都是在伺服器端修改的內容,實際上對於瀏覽器來說標籤內的內容是完全固定的了。下面言歸正傳,仔細來說說在客戶端對ie瀏覽器標題欄的控制:

對於ie視窗中的頁面,在頁面dom物件中,document.title屬性是用來代替元素的innerhtml獲取和設定ie視窗標題欄內容的。請看下面這個示例:

對,就是這麼簡單就可以設定好普通ie視窗的標題欄。那麼這有什麼好說的呢?這時候如果我們把完全相同的**放入模態視窗中執行呢?模態視窗的標題欄是否會被修改?試驗結果卻是讓人沮喪的,完全相同的這段**,在模態視窗中就失靈了。難道模態視窗提供的dom和普通視窗不同嗎?其實模態視窗的dom和普通視窗是相同的,而不同之處是當模態視窗中的頁面裝載完成後,document.title屬性確實會失效。這就是為什麼在上面的示例**onload事件中的語句無效的原因。解決這個限制的方法很簡單,就是要在頁面還未裝載完成時就修改document.title,所以在模態視窗中修改ie

標題欄就因該使用這樣的**:

下面是乙個包含了以上兩種修改瀏覽器標題欄方法的示例,將其儲存為"abc.htm"檔案,使用ie開啟你就能很直**到區別:

open

結果是普通ie視窗的標題欄會從"birdshome's homepage (first)"快速的變為"birdshome's homepage (rewrite)",而使用open按鈕開啟的模態對話方塊的標題將一直是"birdshome's homepage (first)"。從這個示例中我們可以看出來,對於普通ie視窗,其標題欄是可以在頁面生存期的任意時刻進行修改的。而模態視窗的標題欄,我們只能在其頁面裝載完成前(onload事件觸發前)才能修改。非模態對話方塊,opend by showmodelessdialog,對於標題欄的處理和模態對話方塊完全一樣。

最後再說乙個document.title使用中的技巧,我們知道如果在伺服器端"動態"修改頁面title時,我們可以向標籤間寫入&nbps;來在標題欄上產生連續的空格輸入效果。這個技巧在模態視窗中尤為有用,這樣一來我們就可以把那討厭的" - web page dialog"字樣用連續空格推到標題欄外去。使用document.title屬性來修改頁面標題欄後,不管是普通視窗還是模態視窗," "和" "(空格)都不能用了,前者會被直接當字串顯示在標題欄上,後者新增再多也只有乙個" "(空格)的寬度效果。這裡我們又要使用另乙個空格,實體 來解決這個問題。**如下:

怎樣在Web開發中完美控制IE標題欄

ie以及任何目前瀏覽器的標題欄,原本都應該是由這個html標籤來控制的,當然現在仍然也是。只是目前的鬼趨勢是,你最好不要再重新整理你的網頁頁面了,然後還需要接受使用者的任意蹂躪。這也就是傳說中神龍見首不見尾,殺人於無影無形的悖時ajax技術!在瀏覽器的標題欄中顯示貼切的頁面標題,是乙個網頁專業的表現...

springboot(二) 在Web中開發應用

springboot中靜態資源訪問 在開發web應用的時候,需要引用大量的js css 等靜態資源。spring boot預設提供靜態資源目錄位置需置於classpath下,目錄名需符合如下規則 static public resources meta inf resources 啟動程式後訪問路徑...

乾貨分享 教你怎樣在Hadoop中控制Map的數量

在hadoop中,設定map task的數量不像設定reduce task數量那樣直接,即 不能夠通過api直接精確的告訴hadoop應該啟動多少個map task。你也許奇怪了,在api中不是提供了介面org.apache.hadoop.mapred.jobconf.setnummaptasks ...