当前位置: 代码迷 >> Web前端 >> 在weblogic portal中引来dojo【备忘】
  详细解决方案

在weblogic portal中引来dojo【备忘】

热度:201   发布时间:2012-10-17 10:25:46.0
在weblogic portal中引入dojo【备忘】

最近使用oracle workshop for weblogic开发porlet

使用dojo作为js框架,但是dojo在引入的时候有点问题因为有个初始变量要设置

djConfig = {parseOnLoad:true, isDebug:true};

因为要把dojo框架放到look and feel的skin.xml当中,因此不能像以前那样写:

<script src='<portal-logic:urlFindInTheme file="dojo/dojo/dojo.js" />' djConfig="parseOnLoad: true"></script>

需要换一种方式,更改如下

根据weblogic portal中把js引入的skin.xml标签,改写如下

??????????????? <ns:script type="text/javascript">
??????????????? ??? var djConfig = {parseOnLoad:true, isDebug:true};
??????????????? </ns:script>
??????????????? <ns:script charset="" src="dojo/dojo.js" type="text/javascript"/>

如果只需要在单个portlet中引入,也可以参考写类似的配置。

测试通过

另外在weblogic portal中引入了dojo的主题样式以后,有可能在使用过程中发现有些样式没有生效

<ns:link charset="" href="js/dijit/themes/hneiac/hneiac.css"? rel="stylesheet" type="text/css"/>

其实dojo主题在应用的时候需要在body标签当中写入class

<body class="nihilo">

但是在weblogic portal中使用的时候,会默认从look and feel中设置把body标签的class属性为:

bea-portal-body  
因此造成dojo样式变化,测试中发现dijit.Dialog背景完全没有显示出来

要使dojo样式生效有很多方法

比如通过js来改变 
document.body.className = 'nihilo'
document.body.className = 'bea-portal-body
 nihilo'
使用定制dojo主题也可以实现

复制一个主题,如:nihilo,把里面的css文件的nihilo全部替换成bea-portal-body也可以达到目的 

  相关解决方案