我们最近开始测试我们已在Windows 8平板电脑上运行Android,IOS和WP8的应用程序(即W8桌面应用程序)
当我们尝试运行它时,应用程序立即启动并关闭。进一步调试我们发现从WLJQ.js抛出一个异常(见图),更准确地说是在第5964行附加:function()
考虑到异常细节以及经过一些调查后我们指向此链接http://msdn.microsoft.com/en-us/library/windows/apps/Hh767331.aspx,我们找到了一个解决WLJQ.js文件的解决方案,该文件使用MS API跳过注入验证。
到目前为止一切都很好,但是我非常有信心更改内部工作灯文件不是合适的解决方案,因此我们所做的代码可能会破坏其他平台。
基本上我们在WLJQ.js文件中更改了这个:
append: function() {
return this.domManip(arguments, true, function( elem ) {
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
this.appendChild( elem );
}
});
由此
append: function() {
return this.domManip(arguments, true, function( elem ) {
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
var self = this;
MSApp.execUnsafeLocalFunction(function () {
self.appendChild(elem);
});
软件版本:Worklight 6.0.0 Visual Studio 2012
有关如何修复它的任何线索?
答案 0 :(得分:2)
您是否正在为您的应用使用Worklight的jQuery?我不会更改WLJQ.js,而是删除该行:
<script>Window.$ = Window.jQuery = WLJQ</script>
并使用您应用中明确加载的jQuery替换它。 jQuery 2.0应该是Windows 8准备就绪,所以我从那开始。
您没有说是否使用jQuery mobile。即使您使用的是jQuery 2.0,这也会导致问题。但至少如果你从你的应用程序使用jQuery的副本,修改它不会导致修改WLJQ.js的问题。