【问题标题】:Running MagicZoomPlus.stop(); causes intermittent errors运行 MagicZoomPlus.stop();导致间歇性错误
【发布时间】:2014-11-07 05:34:17
【问题描述】:

如果我调用 MagicZoomPlus.stop();在活动的magiczooms上我会经常收到错误:

Uncaught TypeError: Cannot read property 'width' of null

在其他时候我会收到此错误:

Uncaught TypeError: Cannot read property 'r' of undefined 

发生这种情况时,将鼠标悬停在缩略图上会触发:

Uncaught TypeError: Cannot read property 't16' of null 

我试过了……

  • 在 onload 事件中调用 MagicZoomPlus.stop()
  • 在不同长度的 setTimeout 内调用 MagicZoomPlus.stop()
  • 在测试 MagicZoomPlus 是否存在后调用 MagicZoomPlus.stop()
  • 在调用 MagicZoomPlus.stop() 之前测试图像的宽度/高度
  • 在调用 MagicZoomPlus.stop() 之前通过 css 和属性设置图像的宽度/高度

这是一个 jsfiddle 的链接,该链接使用从其文档页面上的示例复制的标记: http://jsfiddle.net/sjjju4x4/6/

如果您在控制台打开的情况下“运行”小提琴,有时会出现错误,有时不会。如果你将超时时间减少到 10 毫秒,它会更频繁地发生

似乎没有代码示例我无法发布,所以这是小提琴中的 JS:

var output = document.getElementById('status');
setTimeout(function () {
    document.getElementById('status').textContent = '...............calling stop';
    MagicZoomPlus.stop();
}, 20);

提前感谢您提供的任何帮助或建议。

【问题讨论】:

    标签: magiczoomplus magiczoom


    【解决方案1】:

    在调用 MagicZoomPlus.stop() 之前,请确保 MagicZoom 实例已准备就绪。

    可以使用下面这个 URL 中描述的“onready”回调来做到这一点:

    https://www.magictoolbox.com/magiczoomplus/integration/#api

    这里是一些示例代码:

    MagicZoomPlus.options = {
      'onready': function(id, isUpdated) {
         setTimeout(function () {
           document.getElementById('status').textContent = '...............calling stop';
           MagicZoomPlus.stop(id);
         }, 20);
      }
    };
    

    这里有一个jsfiddle来帮助你看代码:

    http://jsfiddle.net/pg9f98z0/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      相关资源
      最近更新 更多