我正在使用HTML/JS开始学习Windows 8开发。在过去几个月中,我一直专注于为针对车辆音响和电视的应用程序进行jQuery开发。
刚开始时,我认为这种转换会很简单。对于我的大部分工作来说,我已经设计好了站点的结构和布局,并希望遵循我以前使用的一些做法。
也就是说,我想创建一个单页应用程序。主要的default.html文件将包含顶部导航/标题以及另一个div。另一个div将用于加载所有其他页面,所有这些页面都是项目中的单独HTML文件。
所有全局函数和主要功能都将驻留在一个名为application.js的javascript文件中。然后,任何特定于页面的javascript都将位于每个HTML文件的顶部。
我很快意识到这是一个问题。使用jQuery.load()加载我的页面会导致应用程序出现安全错误。
JavaScript运行时错误:无法添加动态内容。脚本尝试注入动态内容或先前通过动态方式修改的元素,可能不安全。例如,使用innerHTML属性添加脚本或格式不正确的HTML将生成此异常。使用toStaticHTML方法过滤动态内容,或使用createElement等方法显式地创建元素和属性。
我真的希望避免学习大量的Microsoft特定内容。我认为他们提供了很多工具等,也许我还没有足够使用它们,但对于我正在尝试做的事情或使用jQuery已经能够实现的事情来说,一切看起来都过于僵硬。我是一个喜欢确切知道发生了什么并拥有完全控制权的人。
此外,浏览模板和示例项目时,我真的不喜欢所有重复的代码。例如,每个HTML文件都声明了所有相同的引用。我希望只写一次我的引用和部分,比如我的标题栏,并且不必将该代码复制/粘贴到我的整个项目中。
有没有一种方法可以按照我希望的方式创建单页应用程序?它们是否有自己的替代品来取代jQuery的.load()方法?
任何指向正确方向的帮助都将不胜感激!
编辑8/14/2012:
我尝试使用这个问题的解决方法:在Windows 8 Metro JavaScript应用程序中使用jQuery会导致安全错误
这样可以去除安全警告,并且我可以使用jQuery.load()方法加载HTML。但是,在DOM浏览器中查看时,我的HTML正在被剥离脚本。
我还尝试将我的.load()调用包装在MSApp.execUnsafeLocalFunction()中,但是我的文件仍然被剥离了所有脚本。怎么回事?