我正在使用 Openseadragon 显示大图像,其中一些图像在 IE 11 和 Edge 中出现“SCRIPT5022:IndexSizeError”错误消息。
它适用于小图像(1024 x 656 像素),但不适用于任何较大的图像(例如 2981 x 4123)。任何其他浏览器在所有情况下都可以正常工作。
我正在使用 'legacy-image-pyramid' 类型的源。
我的 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
}]
},
];
我发现了这个问题(https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/16192680/和IE 上 drawImage 上的 IndexSizeError 和带有 IE11/Edge 的 Edge (显然在最新版本的 Edge 中得到修复) ) 如果 drawImage 参数错误,但 OpenSeadragon 的值很好。(并且适用于小图像,所以它应该适用于任何图像?)。
我尝试了另一种源类型(图像平铺源),但同样的错误。
如果我禁用画布并改用 img(在选项中使用 useCanvas: false),它会起作用,但这对我来说不是解决方案(它破坏了我的查看器实现)。