dojo选项卡首先显示为常规div,然后突然更改为选项卡格式

时间:2014-03-31 00:33:19

标签: dojo tabcontainer

我在php文件中使用dojo标签。当php文件首次写入浏览器时,标签会显示为常规div。然后一秒钟后,它们很好地固定在制表格中。自从我研究了dojo以来它已经有一段时间了,当时它被编写为使用1.6使用链接到在线版本的dojo。

是否有某种原因会发生这种情况。有没有准备好的东西或没有先加载的东西?

php代码回显了这个html:

<div dojoType='dijit.layout.TabContainer'><div dojoType='dijit.layout.ContentPane' title='Words' selected='true'>some html</div></div>...etc

我在php文件的标题中有这个javascript,首先回显这个html。

<script src='http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js' djConfig='parseOnLoad: true'></script><script>dojo.require('dijit.Tooltip');dojo.require('dijit.layout.TabContainer');dojo.require('dijit.layout.ContentPane');</script><link rel='stylesheet' type='text/css' href='http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css'/>;

1 个答案:

答案 0 :(得分:0)

我刚刚遇到了完全相同的问题,并提出了以下解决方法。在我的布局的<head>部分(layout.phtml - 我正在使用Zend Framework 1.12)中,我添加了以下JavaScript函数

<script type="text/javascript" language="JavaScript">
    function pageLoaded() {
        document.getElementById("body-loading").style.display = "none";
        document.getElementById("body-content").style.visibility = "visible";
        dojo.style("view-content", "visibility", "visible");
    }
</script>

并使用<body>属性和几个onLoad s

调整<div>部分
<body class="<?php echo $dijit_theme ?>" onLoad="Javascript:pageLoaded();">
<div id="body-loading" style="visibility: visible;">loading...</div>
<div id="body-content" style="visibility: hidden;"> 
<?php echo $this->layout()->content ?>
</div>
</body>

所以我看到“loading ...”文本,直到Dojo内容完全呈现,然后“loading ...”消息消失,表单出现。

我在一台互联网速度相当慢的远程服务器上进行了测试,看起来很有效。但是,我刚刚开始使用Dojo,所以如果有更好的方法来解决这个问题,我将非常感谢您的建议。