Вкладки dojo сначала отображаются как обычные элементы div, а затем внезапно переходят в формат вкладок.
Я использую вкладки додзё в файле php. Когда 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
У меня есть этот javascript в заголовке файла php, чтобы повторить этот 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 ответ
Я только что столкнулся с точно такой же проблемой и предложил следующий обходной путь. в <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
атрибут и пара <div>
s
<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, поэтому буду очень признателен за любые советы, если есть лучший способ справиться с этой проблемой.