我正在尝试隐藏(禁用)应用栏,使其不会显示在我应用的页面上。但是,disabled
属性似乎不起作用,或者我的语法已关闭。我试过像这样使用它:
<script>
var disabled = appBar.disabled;
appBar.disabled = disabled;
</script>
和
<script>
var disabled = appBar.disabled;
appBar.disabled = true;
</script>
但应用栏仍然可见。在这两种情况下,我都将脚本放在HTML的正下方:
<!-- BEGINTEMPLATE: Template code for an app bar -->
<div id="appBar" data-win-control="WinJS.UI.AppBar" data-win-options="{closedDisplayMode:'minimal', disabled: false}">
<button data-win-control="WinJS.UI.AppBarCommand" data-win-options="{id:'cmdAbout', label:'about...', section:'selection'}"></button>
</div>
<!-- ENDTEMPLATE -->
<div id="statusMessage"></div>
<script>
var disabled = appBar.disabled;
appBar.disabled = true;
</script>
我做错了什么?
你是否正确初始化appBar
变量?它未在代码片段中定义。尝试这种方式,至少它可以在我的应用程序中工作。
<script>
(function(){
var appBar = document.getElementById("appBar");
if(appBar.winControl) {
appBar.winControl.disabled = true;
}
}());
</script>
另外不要忘记WinJS.UI.processAll
异步运行的,因此您的脚本不能只放在 HTML 标记之后,它只有在已经创建了AppBar
时才起作用。