Windows 8 Metro Flyouts在Javascript中似乎不起作用?
我最近一直试图为Windows 8创建一个地铁应用程序,并尝试使用设置弹出窗口。
所以我跟随msdn quickstart: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函数只会被调用一次(所以我可以确保它只执行一次)
这是我的问题:按下按钮后,“更改服务器”链接确实出现。 然而,当我点击它时,没有任何反应,侧窗刚好淡出。
这是我尝试过的东西,所以我知道这不是其中之一:
我有麻烦找出为什么它不起作用。
有人可以帮忙吗(如果需要,我可以提供更多的代码)?
谢谢。
在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'}">
在我的应用程序中,我在我的href中删除了斜杠。 所以像这样的href:'/settings.html'
同样在你的settings.html页面上,确保你有这个data-win-control =“WinJS.UI.SettingsFlyout”
替换你的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'}">
链接地址: http://www.djcxy.com/p/61885.html
上一篇: Windows 8 Metro Settings Flyouts don't seem to work in Javascript?