﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-xueyinkuangdao</title><link>http://www.blogjava.net/xueyinkuangdao/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 02:38:48 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 02:38:48 GMT</pubDate><ttl>60</ttl><item><title>Mozilla 浏览器下一些web应用的技巧和心得</title><link>http://www.blogjava.net/xueyinkuangdao/archive/2006/11/15/81142.html</link><dc:creator>雪饮狂刀</dc:creator><author>雪饮狂刀</author><pubDate>Wed, 15 Nov 2006 00:49:00 GMT</pubDate><guid>http://www.blogjava.net/xueyinkuangdao/archive/2006/11/15/81142.html</guid><description><![CDATA[
		<p align="left">   近来写的web应用要发布在Mozilla浏览器下使用,遇到一些比较奇怪的问题,现写出来与大家一起<br />   分享.<br />   1.根据浏览器的不同自动来切换到不同的页面<br />   因为在IE下和Mozilla浏览器下显示的页面还是有很大的不同,所以为方便代码的维护,还是决定将两<br />   种不同浏览器下的web程序分开了,这样显得条理更清晰.<br />   此功能可以很简单的通过javascript脚本来控制页面的不同展现,代码如下:<br />   &lt;%<br />          String toUrl = request.getContextPath()+"/pcitc/main/web0.jsp";<br />          String toMzUrl = request.getContextPath()+"/pcitc/main/web0_mz.jsp";<br />   %&gt;<br />   &lt;script language=javascript&gt;</p>
		<p align="left">   if((navigator.appName == "Microsoft Internet Explorer") &amp;&amp; (parseInt(navigator.appVersion)&gt;= 4))<br />   {<br />       document.location="&lt;%=toUrl%&gt;";<br />   }<br />   else {<br />      document.location="&lt;%=toMzUrl%&gt;";<br />   }</p>
		<p align="left">   &lt;/script&gt;<br />   2.要注意发布端口的选择对javascript的影响(mozilla浏览器)<br />    同样的javascript脚本在不同的端口发布会产生不同的结果,主要说的是80端口和非80端口,如<br />   果web应用程序是发布在非80端口的话,mozill浏览器会认为该web应用程序还处在开发阶段,故<br />   安全级别会比较低,在这种情况下,一般的javascript脚本和在IE下显示的效果是没什么区别的,<br />   但如果一旦将web应用程序发布到80端口,此时mozilla浏览器会将对javscript的安全级别提高,某<br />   些原本在其他端口能正常显示的功能会突然变的不正常,那么这个时候就应该调整javscript的代<br />   码,尽量使其更安全.<br />   举例:在IE中我们经常要操作在子窗体中获得父窗体的某个frame的某种特性或操作其他窗体的<br />   显示<br />   父窗体代码:<br />   &lt;script language=javascript&gt;<br />   function setCategoryValue(appId,cateCode,cateOid,userId,canEditIds) {<br /></p>
		<p align="left">     appFrame.location='http://&lt;%=request.getServerName()%&gt;:&lt;%=request.getServerPort()%&gt;/pmi/ltmetainfo/pcitcinfolist.jsp?app_id='+appId+'&amp;category='+cateCode+'&amp;cateOID='+cateOid+'&amp;user_id='+userId+"&amp;isfirst=1<br />&amp;can_edit_ids="+canEditIds;<br />}<br />   &lt;/script&gt;<br />&lt;FRAMESET ID="app" FRAMESPACING="0" COLS="20%,8,*"&gt;<br /> &lt;FRAME SRC="http://&lt;%=request.getServerName()%&gt;:&lt;%=request.getServerPort()%&gt;/pmi/ltmetainfo/subjecttree.jsp?user_id=&lt;%=userId%&gt;" NAME="subjectTreeFrame" <br />SCROLLING="AUTO" border="0" frameborder="no"&gt;<br /> &lt;FRAME NAME=middle SRC="app_middle.jsp" noResize SCROLLING="NO" frameborder="no"&gt;<br /> &lt;FRAME SRC="" NAME="appFrame" SCROLLING="AUTO" ID="appFrameId" frameborder="no"&gt; <br />&lt;/FRAMESET&gt;<br />子窗体subjecttree.jsp:<br />url="javascript:parent.setCategoryValue(\\'"+appId+"\\',\\'"+sub.getCode()+"\\',\\'"+sub.getCateOID()+"\\',\\'"+userId+"\\',\\'"+canEditIds+\\');<br />此代码去调用父窗体的setCategoryValue函数来展现appFrame的内容.<br />原本这样的代码在其他端口就能正常显示,但一部署到80端口,该js脚本就出错.错误的原来是<br />在mozilla浏览器下80端口中parent方法不能使用.在反复思考和调试下,决定将parent方法摈弃掉,<br />而改用表单提交的方法,所以对subjecttree.jsp做如下的修改:<br />url="javascript:setCategoryValue(\\'"+appId+"\\',\\'"+sub.getCode()+"\\',\\'"+sub.getCateOID()+"\\',\\'"+userId+"\\',\\'"+canEditIds+\\');<br />将其中的parent删除,同时将setCategoryValue方法移到该页面.<br />function setCategoryValue(appId,cateCode,cateOid,userId,canEditIds) {<br />document.menu_right.action="http://&lt;%=request.getServerName()%&gt;:&lt;%=request.getServerPort()%&gt;/pmi/ltmetainfo/pcitcinfolist.jsp?app_id="+appId+"&amp;category="+cateCode+"&amp;cateOID="+cateOid+"&amp;user_id="+userId+"&amp;isfirst=1<br />&amp;can_edit_ids="+canEditIds;<br /> document.menu_right.submit();<br />}<br />然后添加一个表单,表单中指定要操作的对象是appFrame,代码如下:<br />&lt;form name="menu_right" action="" method="post" target="appFrame"&gt;<br />&lt;/form&gt;<br />做上述修改后,页面方正常显示.</p>
		<p align="left"> </p>
		<p align="left">
				<br />
				<br />
				<br />
				<br />
				<br />
				<br />
				<br />
				<br />
				<br />
				<br /> </p>
<img src ="http://www.blogjava.net/xueyinkuangdao/aggbug/81142.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xueyinkuangdao/" target="_blank">雪饮狂刀</a> 2006-11-15 08:49 <a href="http://www.blogjava.net/xueyinkuangdao/archive/2006/11/15/81142.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>