1

Unhandled exception 0x800c001c当我为 Windows Phone 8.1 和 Windows Phone 10 调试我的 Cordova 项目时,我得到了一个问题。问题是document.writeSystem.js.

我了解winstore-jscompat.js 链接用于解决此问题,并且该<script src="...元素位于索引 HTML 中。但是,它似乎并没有解决 Windows Phone 的动态内容问题。

在此处输入图像描述

当我查看 dom 时,我可以看到winstore-jscompat.js它是由动态添加的,platformOverrides.js并且位于调用 system.js 之前。

在此处输入图像描述

项目代码可以在这里下载https://github.com/dbiele/TypeScript-Cordova-SystemJS

有什么想法吗?不确定这是否是我的构建机器的问题。注意:使用模拟器和物理设备时会出现问题。

4

1 回答 1

1

@guybedford 能够回答这个问题。这是他的回应:

https://github.com/systemjs/systemjs/issues/825

这是 SystemJS 需要在https://github.com/systemjs/systemjs/blob/master/dist/system-polyfills.js加载 Promise 和 URL polyfills 文件时的自动加载。这在包括 Edge 在内的 IE 环境中总是需要的。如果您只是在加载 SystemJS 之前手动将该文件包含在脚本标记中,它将不再发出该动态请求。

我将我的 platformOverrides.js 更新为:

(function () {
// Append the safeHTML polyfill
var scriptElem = document.createElement('script');
scriptElem.setAttribute('src', 'scripts/winstore-jscompat.js');
var scriptElem2 = document.createElement('script');
scriptElem.setAttribute('src', 'scripts/system-polyfills.js');
if (document.body) {
    document.body.appendChild(scriptElem);
    document.body.appendChild(scriptElem2);
} else {
    document.head.appendChild(scriptElem);
    document.head.appendChild(scriptElem2);
}
}());
于 2015-10-06T13:27:27.167 回答