2

我是开发 Metro 应用程序的新手,但我有使用 javascript 及其一些库(如 Backbone、_、$ 等)的经验。无论如何,我只是将一些 js 代码导入我的新 Metro 应用程序并注意到一些js函数不会转移过来。我注意到的第一个是警觉的。最终通过搜索,我发现警报可以表示为

window.alert = function (msg) {
    var dialog = new Windows.UI.Popups.MessageDialog(msg, "Alert");
    dialog.showAsync();
}

另一个奇怪的函数是 document.write,我“警告”了它,它被定义了,但是,当我使用它时,我的应用程序崩溃了。

无论如何,我想知道是否有任何包含像这样的 js 函数的文档,这些函数并没有真正映射到 Metro 应用程序以及它们的 Metro 等价物,或者甚至可能是一个有助于处理这个问题的 js 库?

另外,如果有人能弄清楚我的 document.write() 调用出了什么问题(或者它对你有用?),那也太棒了!

谢谢!

4

2 回答 2

1

开发中心上有一篇很好的文章,准确地涵盖了您的要求:

请特别参阅“差异”部分,其中详细说明alertpromptopen等以及动态功能(如document.writeinner/outerHTML等)。

也一定要花时间阅读“本地和网络上下文页面”部分,以了解功能可能起作用或可能不起作用的原因和时间。以下是上下文如何影响特征的摘要:

于 2012-08-24T13:39:36.967 回答
0

我不确定您之前是否尝试过此页面:Metro App using HTML/JavaScript。相信你能从这里找到所有 JS 相关的函数调用。

从我看到的情况来看,DOM 看起来是一样的,并且document.write()确实支持该功能,正如您从这篇文章中看到的那样。但是,它确实有一个特别的提及:

备注 不要在文档加载完成后对当前文档使用 write 方法或 writeln 方法,除非您首先调用 open 方法,这会清除当前文档窗口并擦除所有变量。注意 在事件处理程序中使用 document.write 或 document.writeln 时,还必须使用 document.close。

希望有帮助。

于 2012-08-24T09:21:34.060 回答