利用javascript協議來減少簡化FRAME SRC屬性的設定
最近寫頁面遇到一個需要frame的需求,開始時,我為每個frame的src定義了一個頁面檔案,後來在<javascript應用程式經典例項>一書中看到一個更簡單的辦法,利用javascript協議就不需要為每個src屬性都定義一個檔案了,這就減少了不必要的檔案,該書中的示例內容:
<HTML>
<HEAD>
<TITLE>JavaScript On-line Test</TITLE>
<SCRIPT LANGUAGE="JavaScript1.1">
<!--
var dummy1 = '<HTML><BODY BGCOLOR=WHITE></BODY></HTML>';
var dummy2 = '<HTML><BODY BGCOLOR=WHITE><FONT FACE=Arial>Strap in Bucko: This ain/'t no JavaScript vacation...</BODY></HTML>';
//-->
</SCRIPT>
</HEAD>
<FRAMESET ROWS="90,*" FRAMEBORDER=0 BORDER=0>
<FRAMESET COLS="250,*">
<FRAME SRC="administer.html" SCROLLING=NO>
<FRAME SRC="javascript: self.dummy1">
</FRAMESET>
<FRAME NAME="questions" SRC="javascript: self.dummy2">
</FRAMESET>
</HTML>
我在jsp的使用原始碼:
<html>
<head>
<title>Enter Page</title>
<script language="javascript">
var welcome='<html><body bgcolor="#808080" leftmargin="0" topmargin="10">'+
// '<img src="define.jpg" width="100%" height="100%">'+
'</body></html>';
</script>
</head>
<frameset cols="25%, *">
<frame src="TreeView.jsp">
<frame name="rightFrame" src="javascript: parent.welcome">
</frameset>
</html>
在使用這種方法之前,我必須為第二個frame定義一個內容簡單的頁面檔案,而利用這個方法就簡單了許多,至少減少了一個檔案的定義.我這裡使用的很簡單,可能有的人會在比較複雜情況下使用這種方法,具體我沒試過.
注意:在<javascript應用程式經典例項>一書的引用本檔案的變數是使用self,那是純html檔案;而在jsp檔案中,必須使用parent,否則瀏覽器找不到那個變數.後來,我把上面的self改為parent也是對的,具體原因我不清楚,至少這樣是正確的