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函数只会被调用一次(所以我可以确保它只执行一次)

这是我的问题:按下按钮后,“更改服务器”链接确实出现。 然而,当我点击它时,没有任何反应,侧窗刚好淡出。

这是我尝试过的东西,所以我知道这不是其中之一:

  • 这不是文件丢失。 我试图放置一个不存在的文件,并抛出异常,程序崩溃。 在这里,它不会崩溃。
  • HTML被正确编码,因为我试图用微软的一个示例设置文件替换settings.html。
  • 我有麻烦找出为什么它不起作用。

    有人可以帮忙吗(如果需要,我可以提供更多的代码)?

    谢谢。


    在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?

    下一篇: Visual Studio 2012 Web Publish doesn't copy files