【问题标题】:IBM Worklight 6 - Windows 8 Tablet append function exceptionIBM Worklight 6 - Windows 8 Tablet 附加功能异常
【发布时间】:2013-11-09 01:04:25
【问题描述】:

我们最近开始在 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 视觉工作室 2012

关于如何修复它的任何线索?

【问题讨论】:

    标签: jquery windows exception ibm-mobilefirst tablet


    【解决方案1】:

    您是否在应用程序中使用 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 Mobile 1.3.1 和嵌入式 Worklight JQuery。因此,为了修复它,我应该导入并使用另一组 JQuery 文件吗?我并不热衷于这样做。此外,破解 WLJQ.js 并没有太大帮助,因为它在每个构建中都会被替换
    • 您只需将单个 jquery js 文件导入您的项目和主 html。这是一种常见的做法,它将您的代码与 wljq 的更改/更新隔离开来。我同意,编辑 wljqjs 不是要走的路。
    猜你喜欢
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    相关资源
    最近更新 更多