Я создаю приложение Windows 8 HTML5 и внедряю панель приложений. Когда я получаю доступ к appbar.winControl, он всегда равен нулю. Поэтому, если, например, я пишу appbar.winControl.show(), я получаю исключение, утверждающее, что winControl имеет значение null.
Что я сделал, так это создал приложение с фиксированным макетом. Ничего не делая, я добавил в тело документа следующую разметку:
<body>
<div id="appbar" data-win-control="WinJS.UI.AppBar" aria-label="Command Bar">
<button id="btnBoardSizeUp" data-win-control="WinJS.UI.AppBarCommand" data-win-options="{label:'Larger', icon:'zoomout', section:'global', tooltip:'Increase the board size'}" />
<button id="btnBoardSizeDown" data-win-control="WinJS.UI.AppBarCommand" data-win-options="{label:'Smaller', icon:'zoomin', section:'global', tooltip:'Decrease the board size'}" />
<button id="btnAbortGame" data-win-control="WinJS.UI.AppBarCommand" data-win-options="{label:'Abort', icon:'cancel', section:'selection', tooltip:'Abort the current game'}" />
</div>
<script type="text/javascript">
var appbar = document.getElementById("appbar");
var winControl = appbar.winControl;
winControl.show();
</script>
The line winControl.show() produces the following error:
0x800a138f — ошибка выполнения JavaScript: невозможно получить свойство «show» неопределенной или нулевой ссылки
Насколько я вижу, я правильно реализовал панель приложений на странице, поэтому она должна работать. Любая идея, что происходит не так?