浏览端开发问题

所有空间

产品规划
AOM百科
知识共享

导航
目录

关于页面数据缓存问题

我们经常遇到一个问题,A页面跳到B页面,再从B页到跳到A页面,这时A页面上的组件的值还存在。原因:后台Bean为Session范围的,那们我们可以通过两种方式解决这个问题,第一种是设置Bean的范围为request的,但这种方式会导致datagrid会取不到数据,这时必须改变datagrid的写法才可以取到数据;第一种解决的方法是保持session范围,在重新进入A页面之前把A页面的值清空即可。

如何在一个页面包含另一个页面

   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE HTML PUBLIC "" "">
   <f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
	xmlns:w="http://www.apusic.com/jsf/widget" xmlns:layout="http://www.apusic.com/jsf/layout"
	xmlns:h="http://java.sun.com/jsf/html" xmlns:ajax="http://www.apusic.com/jsf/ajax"
	xmlns:ui="http://java.sun.com/jsf/facelets" renderKitId="AJAX">
	<ui:include src="XXXX.xhtml"></ui:include>
   </f:view>

关于如何在xhtml页面中使用c:if标签

只需在f:view中引入以下代码即可以页面中使用c:if标签,代码如下:

   xmlns:c="http://java.sun.com/jstl/core"	

如何实现客户端自动截取内容长度,超出部分以省略号表示

用css级联样式来实现,具体实现过程为:

<style type="text/css">
body{font-size:13px;color:#8c966b;}
div{clear:both;width:340px;border:1px solid #333;margin:3px;padding:3px; height:20px;}
div a{color:#8c966b;text-decoration:none;}
div a:hover{text-decoration:underline;}

div a{display:block;width:310px;white-space:nowrap;overflow:hidden;float:left;
    -o-text-overflow: ellipsis;    /* for Opera */
    text-overflow:ellipsis;        /* for IE */
}
div:after{content:"...";padding-left:3px;font-size:12px;}/* for Firefox */
</style>

可以这样来使用上面的css级联样式:

<div><a href="">好处是:有利于内容完整性,有利于SEO,无需后台程序处理,可以在前台随时调节要截取的长度。</a></div>

在iframe页面中执行window.show()方法,iframe会自动scroll到浏览器的可视区顶部(IE、google浏览器下)

这是由于这些浏览器下href="#"的a标签被单击时均会是页面滚动到最上面。可以有以下几种方案解决这个问题:

  1. 将<a href="#">...</a>改为<a href="javascript:;"> ...</a>
  2. 将<a href="#"> ...</a>改为<a href="#"onclick="return false"> ...</a>
  3. 如果实在不需要一个链接,而只是想让浏览者把鼠标放在这里的时候让鼠标变成手,那么你也可以将<a> 去掉,用<span style="cursor:hand">代替
  4. 将<a href="#"> ...</a>改为<a href="####">...</a>
  5. 将<a href="#"> ...</a>改为<a href="javascript:void(0)">...</a>

两个页面之间互相跳转,在firefox 2上导致页面无法正常显示

这是由于firefox2的缓存策略造成的。要避免此问题可关闭firefox的网页缓存。操作如下:

  1. 打开firefox窗口,在地址栏中输入 about:config
  2. 在打开的配置页面中的搜索栏上输入cache
  3. 把browser.cache.disk.enable与browser.cache.memory.enable两项设为false
  4. 关闭firefox重新打开

如何在AOM的应用页面中配置,使得IE 8兼容IE 7模式

在页面中加入<om:emulateIE7>标签。当页面中有om:emulateIE7标签时,AOM引擎将在响应页面的head中渲染<META HTTP-EQUIV="X-UA-Compatible" CONTENT="IE=EmulateIE7" /> 。通知IE8使用IE7兼容模式来显示页面。

xhtml页面脚本里for,while循环语句的用法

<script>
 // <![CDATA[  
    function f(){   
         for(...)
           {     
               ....      
            }  
        }
  //]]>
</script>

如何实现页面超时的配置

在<w:head></w:head>中间加入javascript代码,代码为:

<script type="text/javascript">
  <!--
      Ext.override(Ext.data.FacesScriptProxy,{  timeout : 30000});
   -->
</script>

如何将输入框中输入的小写字母自动转换为大写

可以用javascript实现,具体过程为:

<input type="text" onkeyup="a(event)"/>
<script type="text/javascript">
    function a(oEvent) 
	   {  
	     oEvent.srcElement.value=oEvent.srcElement.value.toUpperCase();
	   }
</script>

如何在LiteBean中用Browser动态执行script代码

用Browser类将要执行的脚本发送到客户端执行。具体过程如下:

      StringBuffer strbuffer=new StringBuffer("");
      strbuffer.append("var script1 = document.createElement('script');");
      strbuffer.append("script1.type='text/javascript';");
      ...
      Browser.execClientScript(strbuffer.toString());

对于Ext相关的组件,如何设置自己的ExtConfig对象

Ext相关的组件有initConfig属性,用户可以设置自己的ExtConfig对象,这个ExtConfig对象可以增删改系统提供的或用户通过其他方式提供的属性,且具有最高的优先级。initConfig属性接受ExtConfig和String两种类型。页面中直接在组件上设置字符串形式的initConfig属性,使用方法如下:

<layout:panel id="test46" title="My Panel" initConfig='{"applyTo":null, "renderTo":"test46"}'/>
  • 属性值可以是字符串,布尔值,或整型值。比如:{"a": "avalue", "b": true, "c": 200}
  • 当属性值是字符串时,若希望渲染时不被引号包围,可加前缀"var::", 比如 {"d": "var::varName"}
  • 当前String类型initConfig的设置有一个限制,就是key必须用双引号包围,所以在页面中推荐整个属性外围用单引号,如上面例子所示,这样就比较方便,否则就要用&quot;代替双引号。

在FireFox下,布局采用cardLayout,其中有多个panel,在页面加载的过程中先看到最后一个panel的内容,然后才显示第一个panel的内容

这个问题是属于浏览器对脚本的解析问题,cardLayout中panel的加载是按顺序进行的,全部加载完后将第一个设为active。就AOM框架目前的渲染机制来说,建议客户采用IE 或其它浏览器。

在firefox下ajax页面导航地址栏出现wyciwyg

这个问题属于firefox内部页面缓存机制问题,可删除w:head标签中关于Content-Type的声明解决。

输入标签加入到本页面中
Please wait 
寻找标签吗?请输入搜索信息.