我正在使用Openseadragon来显示大图像,并且在其中一些图像中,我收到了带有IE 11和Edge的“ SCRIPT5022:IndexSizeError”错误消息。
它适用于较小的图像(1024 x 656像素),但不适用于较大的图像(例如2981 x 4123)。任何其他浏览器在任何情况下都可以正常工作。
我正在使用“旧版图像金字塔”类型的源。
我的Openseadragon配置:
viewer = OpenSeadragon({
id: 'openseadragon',
toolbar: 'viewer-toolbar',
maxZoomLevel: 5,
minZoomLevel: 0,
preload: true,
sequenceMode: false,
tileSources: SOURCE,
crossOriginPolicy: 'Anonymous',
// buttons
zoomInButton: 'zoom-in',
zoomOutButton: 'zoom-out',
showRotationControl: true,
rotateLeftButton: 'rotate-left',
rotateRightButton: 'rotate-right',
homeButton: 'home',
showFullPageControl: false,
rotateleftButton: 'rotate-left',
rotaterightButton: 'rotate-right',
// gestures
gestureSettingsMouse: {
clickToZoom: false,
dblClickToZoom: true,
pinchToZoom: true,
pinchRotate: true
},
gestureSettingsTouch: { pinchRotate: true }
});
大型图片的源代码(失败):
var SOURCE = [
{
type: 'legacy-image-pyramid',
levels: [{
url: 'https://rgw.atolcd.com/swift/v1/sillon_container_test/entrepot/B574636101_Prev36_18930411_0001.jpg',
height: 4123,
width: 2981
}]
}
];
较小图像(工作)的源代码:
var SOURCE = [
{
type: 'legacy-image-pyramid',
levels: [{
url: 'https://rgw.atolcd.com/swift/v1/sillon_container_test/entrepot/carte1.jpg',
height: 656,
width: 1024
}]
},
];
我发现了这个问题(如果drawImage参数错误,则使用IE11 / Edge(显然是在Edge的最新版本中得到了修复)的https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/16192680/和IndexSizeError on drawImage on IE and Edge,但是OpenSeadragon的值很好。图片,所以它应该适用于任何图片?)。
我尝试了另一种源类型(图像图块源),但存在相同的错误。
如果我禁用画布并改用img(在选项中为useCanvas:false),则可以使用,但这对我来说不是解决方案(破坏了我的查看器实现)。