之前寫過一篇關于在HTML頁面中modal dialog中進行URL轉向的問題。現在找到了一個新的辦法。
場景是這樣的:在頁面上進行輸入信息時,某些信息是從數據庫中預先查找出來,然后填充到下拉列表的。但是由于部分數據項的可選數據太多了,將近3000條,這樣的情況下,使用下拉列表就有點不太合適,所以提供了一個彈出窗口,是使用showModalDialog方法彈出的模態窗口。而且在這個窗口上提供了查找的功能,但是遇到一個問題是當彈出窗口的<form>被submit按鈕提交的時候,結果是在新的窗口打開的,這顯然不是我們想要的。
查找了一些資料,又咨詢了同事,發現在HTML中有一個元素為base,通常很少會用到,但是這個時候就需要了。
base對象的說明如下:
【指定一個顯式 URL 用于解析對于外部源的鏈接和引用,如圖像和樣式表】
通過設置base標簽的target屬性為_self,可以控制在modal dialog上將URL的轉換限制在當前窗口。target屬性大家都比較常用了,用以設置或獲取目標內容要顯示于哪個窗口或框架。
根據說明文檔,BASE標簽要出現在HEAD標簽之內的任何外部元素引用之前,比如:
<head>
<base target="_self">
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>POPUP模態窗口測試</title>
<link rel="stylesheet" type="text/css" href="../css/lab.css">
</head>
設置了BASE標簽的target屬性為_self之后,在模態窗口上對于相對URL的跳轉就可以控制在窗口內,而不在彈出新的窗口。