导航到Windows商店应用中的另一个html

时间:2014-12-08 11:09:42

标签: javascript windows-phone-8 windows-runtime windows-store-apps winjs

我正在尝试找到一种方法来导航到我的应用中的另一个html。我尝试了window.location和WinJS.Navigation.navigate,但都没有。

2 个答案:

答案 0 :(得分:1)

虽然你可以让document.location和导航工作(并注意它是document.location,而不是window.location),但推荐的方法是将应用程序像单页Web应用程序一样实现,这意味着你“导航” “通过default.html / index.html中的dong DOM替换。也就是说,您的页面上下文始终是默认的HTML页面,因此您可以跨“页面”保留JavaScript上下文,并且还能够顺畅地将内容导入和导出页面。 (document.location和链接通过黑屏过渡并重置JS上下文。)

有多种方法可以替换DOM,但WinJS内置的机制称为WinJS.UI.Pages。探索该机制的最佳方法是使用导航模板创建一个新的应用程序项目。这简要说明了这一点:

  • 主页面default.html,即单个HTML页面上下文。这声明了一个包含Application.PageControlNavigator控件的div,该控件使用对“home”页面的引用进行初始化。
  • 一个页面文件夹,其中有一个home / home.html,.js和.css(这些将分散在通用应用程序项目中的共享文件夹中,请注意)。
  • js文件夹中的navigator.js文件,默认情况下从default.html加载。这是一段代码,它监听WinJS.Navigation.navigate调用并使用WinJS.UI.Pages机制加载并导航到使用DOM替换的另一个页面(实际上你保持在default.html中)。它专门在default.html中查找PageControlNavigator控件,并且所有DOM替换都在该div中发生。

在此模型中,home.html是您的第一页。要创建其他页面,请右键单击pages文件夹,然后选择Add>新商品> JavaScript>页面控制。这将为您提供另一组用于另一个WinJS“页面”的HTML,CSS和JS文件,特别是包含WinJS.UI.Pages.define调用的JS,用于设置必要的对象结构。

您可以移动这些文件 - 只需确保项目中HTML文件的路径在WinJS.UI.Pages.define调用以及导航调用中完全匹配,否则页面会赢得' t load。

有关更完整的详细信息,请参阅我的免费电子书的第3章Programming Windows Store Apps with HTML, CSS, and JavaScript, 2nd Edition,从第136页的“页面控件和导航”开始。

答案 1 :(得分:0)

WinJS.Navigation.navigate应该做到这一点。

您是否看到错误或其他什么?