Windows 8 Metro Settings Flyouts 似乎不适用于 Javascript?
Posted
技术标签:
【中文标题】Windows 8 Metro Settings Flyouts 似乎不适用于 Javascript?【英文标题】:Windows 8 Metro Settings Flyouts don't seem to work in Javascript? 【发布时间】:2012-09-21 05:22:44 【问题描述】:我最近一直在尝试为 Windows 8 创建 Metro 应用程序并尝试使用设置弹出窗口。
所以我关注了 msdn 快速入门:http://msdn.microsoft.com/en-us/library/windows/apps/hh780611.aspx
但是,我不能让它工作。
这是我添加设置弹出窗口的部分:
function setupSettings()
app.onsettings = function (e)
e.detail.applicationcommands = 'serv_changer': title: 'Change Server', href: 'settings.html' ;
WinJS.UI.SettingsFlyout.populateSettings(e);
当我按下一个按钮时,函数 setupSettings 只被调用一次(所以我可以确保它只被执行一次)
这是我的问题:按下按钮后,“更改服务器”链接确实出现了。然而,当我点击它时,什么也没有发生,侧窗只是淡出。
这是我尝试过的事情,所以我知道这不是其中之一:
不是文件丢失。我试图放置一个不存在的不同文件,并引发异常并且程序崩溃。在这里,它不会崩溃。 HTML 编码正确,因为我尝试将 settings.html 替换为 Microsoft 的示例设置文件之一。我无法弄清楚为什么它不起作用。
有人可以帮忙吗(如果需要我可以提供更多代码)?
谢谢。
【问题讨论】:
【参考方案1】:在您的 settings.html 页面中,确保 data-win-control 声明包括设置 commandId 的名称 - 在线示例中似乎缺少此内容。
例如。
如果你的js文件声明命令为:
e.detail.applicationcommands = 'serv_changer': title: 'Change Server', href: 'settings.html' ;
...然后确保您的 settings.html 文件引用“serv_changer”:
<div data-win-control="WinJS.UI.SettingsFlyout" data-win-options="settingsCommandId:'serv_changer', width:'wide'">
【讨论】:
【参考方案2】:在我的应用程序中,我的 href 中有斜杠。所以像这样的href:'/settings.html'
在你的 settings.html 页面上确保你有这个 data-win-control="WinJS.UI.SettingsFlyout"
【讨论】:
【参考方案3】:替换你的js函数
function setupSettings()
app.onsettings = function (e)
e.detail.applicationcommands = 'serv_changer': title: 'Change Server', href: 'settings.html' ;
WinJS.UI.SettingsFlyout.populateSettings(e);
用这个:
function setupSettings(e)
e.detail.applicationcommands =
"serv_changer":
title: "Change Server",
href: "/settings.html"
;
WinJS.UI.SettingsFlyout.populateSettings(e);
并确保在您的 settings.html 文件中引用了 serv_changer
:
<div data-win-control="WinJS.UI.SettingsFlyout" data-win-options="settingsCommandId:'serv_changer'">
【讨论】:
以上是关于Windows 8 Metro Settings Flyouts 似乎不适用于 Javascript?的主要内容,如果未能解决你的问题,请参考以下文章
Windows 8 应用商店应用程序 (Metro) 是不是在 Windows 7 或 XP 中运行?
下拉选择控件 - Windows 8 Metro - XAML
无法消除 Windows 8 Metro 'ListView' 中 Tiles 之间的填充/边距
在 Windows 8/Metro/Store 中为 RectangleGeometry(在 Image.Clip 中)设置动画