jsp頁面中使用iframe幾個問題總結打賞

最近做項目,jsp的,我做前臺的輸出,因為不常用jsp做界面美化,更不常用iframe控制頁面。這回可算遇到不少問題了,首先,在iframe內部使用link獲取css和jsp整個文檔中獲取獲取js腳本都有問題,其次就是,遇到了ff的onclick未定義情況。這里不再贅述,相信大家都遇到過了吧,可惡的網絡,卡的要命。剛剛寫了近一千字的內容,居然沒有保存,發布后只有兩個字,杯具啊!平時幾分鐘保存一次草稿,這次居然沒有自動保存,果斷不寫了。直接給出我網上搜集的解決方法。

首先就是link問題,這里我還沒有找到問題根源,直接jsp include動態寫頁內了。

然后就是ff的onclick事件。找了以下解決方案。
firefox沒有這個事件,需要自己處理一下,代碼如下:

function doClick(obj) {
if (document.all) {//如果支持的話,是ie下,默認有這個事件,
obj.click();
} else { //否則就自己添加一個
var evt = document.createEvent("MouseEvents");
evt.initEvent("click", true, true);
obj.dispatchEvent(evt);
}

}

調用 方法 : doClick(控件);

void initEvent(String eventTypeArg,boolean canBubbleArg,boolean cancelableArg)
initEvent 方法用于初始化通過 DocumentEvent 接口創建的 Event 的值。此方法只能在通過 dispatchEvent 方法指派 Event 之前調用,盡管在該階段可以多次調用它(如有必要)。如果被多次調用,則最后一次調用優先。如果從 Event 接口的子類調用,則只修改在 initEvent 方法中指定的值,所有其他屬性保持不變。
參數:
eventTypeArg - 指定事件類型。此類型可以是當前在此規范中定義的任何事件類型,或是一個新的事件類型。該字符串必須是 XML 名稱。任何新的事件類型一定不能以字符串 "DOM" 的大寫、小寫或混合大小寫版本開頭。此前綴是為以后的 DOM 事件集保留的。還強烈推薦添加自己的事件的第三方使用自己的前綴以避免混淆,降低與其他新的事件發生沖突的可能性。
canBubbleArg - 指定該事件是否可以 bubble。
cancelableArg - 指定是否可以阻止事件的默認操作。

其次就是iframe刷新問題,ie6下不會自動刷新。網上好的方法,會一兩種即可。
簡單框架
<iframe id="ifrmid" src="http://" width="100%" height="500"&dt;
js刷新iframe
<script type="text/javascript" language="javascript">// <![CDATA[
// < ![CDATA[ one=function() { ifrmid.window.location.reload() } setTimeout("one()",60000)
// ]]></script>
'5秒鐘自動刷新

1、&lt;script type="text/javascript"&gt;// &lt; ![CDATA[ window.location.reload(true); // ]]&gt;
如果是你要刷新某一個iframe就把window給換成frame的名字或ID號
2、&lt;script type="text/javascript"&gt;// &lt; ![CDATA[ window.navigate("本頁面url"); // ]]&gt;
3、function abc()
{
window.location.href="/blog/window.location.href";
setTimeout("abc()",10000);
}
刷新本頁:
Response.Write("<script type="text/javascript">// <![CDATA[
// < ![CDATA[ window.location.href=window.location.href;
// ]]></script>")
刷新父頁:
Response.Write("<script type="text/javascript">// <![CDATA[
// < ![CDATA[ opener.location.href=opener.location.href;
// ]]></script>")
轉到指定頁:
Response.Write("<script type="text/javascript">// <![CDATA[
// < ![CDATA[ window.location.href='yourpage.aspx';
// ]]></script>")
刷新頁面實現方式總結(HTML,ASP,JS)
'by aloxy
定時刷新:
1,<script type="text/javascript">// <![CDATA[
// < ![CDATA[ setTimeout("location.href='url'",2000)
// ]]></script>
說明:url是要刷新的頁面URL地址
2000是等待時間=2秒,
2,
說明:
n is the number of seconds to wait before loading the specified URL.
url is an absolute URL to be loaded.
n,是等待的時間,以秒為單位
url是要刷新的頁面URL地址
3,<!--sponse.redirect ur-->
說明:一般用一個url參數或者表單傳值判斷是否發生某個操作,然后利用response.redirect 刷新。
4,刷新框架頁
〈script language=javascript&gt;top.leftFrm.location.reload();parent.frmTop.location.reload(); 彈出窗體后再刷新的問題
Response.Write("<script type="text/javascript">// <![CDATA[
// < ![CDATA[ window.showModalDialog('../OA/SPCL.aspx',window,'dialogHeight: 300px; dialogWidth: 427px; dialogTop: 200px; dialogLeft: 133px')
// ]]></script>");//open
Response.Write("<script type="text/javascript">// <![CDATA[
// < ![CDATA[ document.location=document.location;
// ]]></script>");
在子窗體頁面代碼head中加入
刷新的內容加在 if (!IsPostBack) 中
在框架頁中右面刷新左面
//刷新框架頁左半部分
Response.Write("<script type="text/javascript">// <![CDATA[
// < ![CDATA[ "); Response.Write("parent.left.location.href='PayDetailManage_Left.aspx'"); Response.Write("
// ]]></script>");
頁面定時刷新功能實現
有三種方法:
1,在html中設置:
之後加入下面這一行即可!
定時刷新:
10代表刷新間隔,單位為秒
2.jsp
<!--esponse.setHeader("refresh","1");-->
每一秒刷新一次
3.使用javascript:
<script type="text/javascript">// <![CDATA[
// < ![CDATA[ setTimeout("self.location.reload();",1000);
// ]]></script><script type="text/javascript">// <![CDATA[
// < ![CDATA[ 一秒一次 頁面自動跳轉:
// ]]></script><script type="text/javascript">// <![CDATA[
// < ![CDATA[ window.location.href="mian.aspx"; history.go(0);//window.close(); //關閉瀏覽器此頁的窗口
// ]]></script>
先來看一個簡單的例子:
下面以三個頁面分別命名為frame.html、top.html、bottom.html為例來具體說明如何做。
frame.html 由上(top.html)下(bottom.html)兩個頁面組成,代碼如下:
&lt; !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;

frame

現在假設top.html (即上面的頁面) 有七個button來實現對bottom.html (即下面的頁面) 的刷新,可以用以下七種語句,哪個好用自己看著辦了。
語句1. window.parent.frames[1].location.reload();
語句2. window.parent.frames.bottom.location.reload();
語句3. window.parent.frames["bottom"].location.reload();
語句4. window.parent.frames.item(1).location.reload();
語句5. window.parent.frames.item('bottom').location.reload();
語句6. window.parent.bottom.location.reload();
語句7. window.parent['bottom'].location.reload();
top.html 頁面的代碼如下:
&lt; !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;

top.html

<input onclick="window.parent.frames[1].location.reload()" type="button" value="刷新1" />

<input onclick="window.parent.frames.bottom.location.reload()" type="button" value="刷新2" />

<input onclick="window.parent.frames['bottom'].location.reload()" type="button" value="刷新3" />

<input onclick="window.parent.frames.item(1).location.reload()" type="button" value="刷新4" />

<input onclick="window.parent.frames.item('bottom').location.reload()" type="button" value="刷新5" />

<input onclick="window.parent.bottom.location.reload()" type="button" value="刷新6" />

<input onclick="window.parent['bottom'].location.reload()" type="button" value="刷新7" />

下面是bottom.html頁面源代碼,為了證明下方頁面的確被刷新了,在裝載完頁面彈出一個對話框。
bottom.html 頁面的代碼如下:
&lt; !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;

bottom.html
<h1>This is the content in bottom.html.</h1>
解釋一下:
1.window指代的是當前頁面,例如對于此例它指的是top.html頁面。
2.parent指的是當前頁面的父頁面,也就是包含它的框架頁面。例如對于此例它指的是framedemo.html。
3.frames是window對象,是一個數組。代表著該框架內所有子頁面。
4.item是方法。返回數組里面的元素。
5.如果子頁面也是個框架頁面,里面還是其它的子頁面,那么上面的有些方法可能不行。
附:
Javascript刷新頁面的幾種方法:
1 history.go(0)
2 location.reload()
3 location=location
4 location.assign(location)
5 document.execCommand('Refresh')
6 window.navigate(location)
7 location.replace(location)
8 document.URL=location.href
自動刷新頁面的方法:
1.頁面自動刷新:把如下代碼加入區域中

其中20指每隔20秒刷新一次頁面.
2.頁面自動跳轉:把如下代碼加入區域中

其中20指隔20秒后跳轉到http://www.wyxg.com頁面
3.頁面自動刷新js版
<script type="text/javascript" language="JavaScript">// <![CDATA[
// < ![CDATA[ function myrefresh() { window.location.reload(); } setTimeout('myrefresh()',1000); //指定1秒刷新一次
// ]]></script>
ASP.NET如何輸出刷新父窗口腳本語句
1. this.response.write("<script type="text/javascript">// <![CDATA[
// < ![CDATA[ opener.location.reload();
// ]]></script>");
2. this.response.write("<script type="text/javascript">// <![CDATA[
// < ![CDATA[ opener.window.location.href = opener.window.location.href;
// ]]></script>"); 3. Response.Write("<script type="text/javascript" language="javascript">// <![CDATA[
// < ![CDATA[ opener.window.navigate(''你要刷新的頁.asp'');
// ]]></script>")
JS刷新框架的腳本語句
//如何刷新包含該框架的頁面用
<script type="text/javascript" language="JavaScript">// <![CDATA[
// < ![CDATA[ parent.location.reload();
// ]]></script>
//子窗口刷新父窗口
<script type="text/javascript" language="JavaScript">// <![CDATA[
// < ![CDATA[ self.opener.location.reload();
// ]]></script>
( 或 <a href="javascript:opener.location.reload()">刷新</a> )
//如何刷新另一個框架的頁面用
<script type="text/javascript" language="JavaScript">// <![CDATA[
// < ![CDATA[ parent.另一FrameID.location.reload();
// ]]></script>
如果想關閉窗口時刷新或者想開窗時刷新的話,在中調用以下語句即可。
開窗時刷新
關閉時刷新
<script type="text/javascript" language="javascript">// <![CDATA[
// < ![CDATA[ window.opener.document.location.reload()
// ]]></script>
雜記一篇,到此為止。

jsp頁面中使用iframe幾個問題總結
文章《jsp頁面中使用iframe幾個問題總結》二維碼
  • 微信打賞
  • 支付寶打賞

已有6條評論

  1. 環保膠帶

    最近天氣變好了,我發現做網絡的人。身體都有點亞健康。建議朋友都去外面走走啊,挺不錯的

    2012-04-18 20:07 回復
    • 窮小子

      哥不是做網絡的。做你的廣告,別扯、

      2012-04-18 21:07 回復
  2. 汽車模具

    機會留給有準備的人,博主,只要你用心經營博客,一定會成功的

    2012-04-16 14:05 回復
  3. 游客 151

    還沒有更新..期待更新…www.wenx.net小說閱讀

    2012-04-14 15:41 回復
  4. 企業文化標語

    學習了 感謝博主

    2012-04-14 15:31 回復
  5. 游客 59

    文章精彩,文字出眾,不錯,以后常來混,www.viphey.com

    2012-04-14 05:20 回復

(必填)

(必填)

(可選)

黑龙江22选5开奖