我们最近开始测试我们已经在 Windows 8 平板电脑(即 W8 桌面应用程序)上运行的适用于 Android、IOS 和 WP8 的应用程序
当我们尝试运行它时,应用程序立即启动并关闭。进一步调试,我们发现 WLJQ.js 抛出了一个异常(见图片),更准确地说是在第 5964 行追加:function()
考虑到异常细节并经过一些调查将我们定向到此链接 http://msdn.microsoft.com/en-us/library/windows/apps/Hh767331.aspx ,我们找到了破解 WLJQ.js 文件的解决方案,该文件使用 MS API 跳过注入(inject)验证。
到目前为止一切顺利,但我非常有信心更改内部工作灯文件不是合适的解决方案,因此我们完成的代码可能会破坏其他平台。
基本上我们在 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
关于如何修复它的任何线索?
最佳答案
您的应用程序是否使用 Worklight 的 jQuery?我不会更改 WLJQ.js,而是删除以下行:
<script>Window.$ = Window.jQuery = WLJQ</script>
并将其替换为从您的应用中显式加载 jQuery。 jQuery 2.0 应该是 Windows 8 就绪的,所以我将从它开始。
您没有说您是否使用 jQuery Mobile。即使您使用的是 jQuery 2.0,这也会导致问题。但至少如果您从您的应用程序中使用 jQuery 的副本,修改它不会导致修改 WLJQ.js 会出现的问题。
关于jquery - IBM Worklight 6 - Windows 8 平板电脑附加功能异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19665619/