Javascript IPhone img加载失败
我有一些非常简单的代码,可以在桌面上使用Chrome、Firefox、IE和Safari,但当我在Iphone上尝试时,它失败了 基本上是Javascript IPhone img加载失败,javascript,iphone,ios,image,onload,Javascript,Iphone,Ios,Image,Onload,我有一些非常简单的代码,可以在桌面上使用Chrome、Firefox、IE和Safari,但当我在Iphone上尝试时,它失败了 基本上是 var img1 = document.createElement('img'); img1.onerror = function() { console.log('img1 fail'); }; img1.onload = function() { console.log('img1 success'); }; img1.src =
var img1 = document.createElement('img');
img1.onerror = function() {
console.log('img1 fail');
};
img1.onload = function() {
console.log('img1 success');
};
img1.src = 'http://gvgmaps.com/linktothepast/maps/LegendOfZelda-ALinkToThePast-LightWorld.png';
问题是在IPhone上运行的是onerror
函数,而不是onload
。对于桌面,onload
运行正常,没有onerror
使用小提琴,img1因未知原因失败,img2成功
有人能告诉我如何在IPhone上成功运行img1和img2的onload吗
编辑:
非常有趣。我把img重新保存为jpg,现在它可以工作了。有人能提供一些颜色说明为什么会这样
编辑2:
这里的这些链接似乎非常相关
因此,我在iOS模拟器上的Safari中进行了一些网络评测,第一个映像似乎被请求的很好(响应状态200,正常,映像似乎已加载)。仍然不确定它为什么会触发onerror事件而不是onload事件。我猜这与Javascript在加载图像时希望返回的标题有关,但我似乎无法找到它。请继续关注编辑
编辑:您是否拥有/管理承载映像的服务器?如果是这样的话,您的服务器在提供.png图像时可能正在做一些奇怪的事情。因此,我在iOS模拟器上的Safari中进行了一些网络分析,第一个图像似乎正在被请求中(响应状态为200,正常,并且图像似乎已加载)。仍然不确定它为什么会触发onerror事件而不是onload事件。我猜这与Javascript在加载图像时希望返回的标题有关,但我似乎无法找到它。请继续关注编辑
编辑:您是否拥有/管理承载映像的服务器?如果是这样的话,您的服务器在提供.png图像时可能正在做一些奇怪的事情。好的,我想答案是这样的 我正在尝试使用一个4096 x 4096的PNG文件 然而,这个苹果链接 表示PNG的图像必须是
宽度*高度≤ 3*1024*1024
显然我超出了已知的iOS资源限制。
正方形的最大图像大小应为sqrt(3*1024*1024)
,类似于1773px。果然,当我把图像缩小到1770px时,它就工作了
JPEG有不同的资源限制,所以我的jpg没有达到这个限制。好的,我想答案是这样的 我正在尝试使用一个4096 x 4096的PNG文件 然而,这个苹果链接 表示PNG的图像必须是
宽度*高度≤ 3*1024*1024
显然我超出了已知的iOS资源限制。
正方形的最大图像大小应为sqrt(3*1024*1024)
,类似于1773px。果然,当我把图像缩小到1770px时,它就工作了
JPEG有不同的资源限制,因此我的jpg没有达到该限制。我在iOS 9上遇到这个问题,因为我设置了
img.crossOrigin=“anonymous”
删除该选项后,可以将相机中的大照片直接加载到iPad上。我在iOS 9上遇到了这个问题,因为我设置了
img.crossOrigin=“anonymous”
删除该选项后,可以将相机中的大照片直接加载到iPad上。根据W3C规范,img不需要启动onload。那么,当img加载后,我如何检查并运行功能?还有,为什么img1失败,img2成功?这两种情况对我都不适用。最新的chromeChrome 28.0.1500.95 m适合我。两个都在加载。我想知道你是@Murtnowski的同一件事。。。为什么它只适用于第二个映像?根据W3C规范,img不需要启动onload。那么,当img已加载时,我如何检查并运行一个函数呢?还有,为什么img1失败,img2成功?这两种情况对我都不适用。最新的chromeChrome 28.0.1500.95 m适合我。两个都在加载。我想知道你是@Murtnowski的同一件事。。。为什么它只适用于第二个映像?服务器是Dreamhost。不应进行任何虚假交易。服务器是Dreamhost。不应该再胡闹了。几年后,这仍然是真的……我的头撞在了键盘上。谢谢。几年后,这仍然是真的……我的头撞在了键盘上。谢谢