经过数周的史诗javascript研究,我终于发明了我认为非常酷的对象。 我遇到了一个需要我取消上传图片的任务。 我原本以为:
image.src=''
就足够了,但浏览器仍会下载图像。
所以我很酷的解决方案是将一个看不见的iFrame放入身体并在其中添加图片标签,如果我想停止下载我只需致电
iframe.contentWindow.window.stop(); // and something similiar for IE 8
我有我的整个解决方案,但在下载过程中调用stop()会产生chrome:
GET http://xx.xx.com.au/images/products/1.png未定义(未定义) 这在野生动物园:
无法加载资源
基本上我在问这个问题是否有try-catch语句
显然我已经尝试过了 尝试{ iframe.contentWindow.window.stop(); }赶上(E){}根据要求我更乐意分享这段代码,但我警告你它听起来要复杂得多。
答案 0 :(得分:0)
我认为你可能在这个问题上走错了路。从根本上说,您无意使用Javascript控制浏览器,只会影响您自己页面的呈现。像网络连接这样的东西完全由幕后的浏览器管理,所以你可以做的任何修改都可能在某种程度上暗示/破解。
我退后一步,从网页的角度考虑你要做的事情的语义。你是如何触发图片上传的?根据此提示/请求的格式,取消它的语义可能会有所不同。
此外,您取消的动机是什么 - 节省带宽?我觉得如果你说“上传这张图片”(例如提交表单),可能需要几秒钟的事实是一个你无法通过Javascript真正访问的实现细节。此外,如果用户有T1线并且图像在您想要取消时已完成上传,该怎么办?
在不知道具体细节的情况下,在考虑请求 - 响应协议的情况下,自然要做的就是发送消息“实际上,删除/忽略我刚刚上传的图像”。
我怀疑为此目的使用Stop是因为:
代码“比听起来更复杂”这一事实也是一个警告 - 增加更多层次的复杂性不太可能是解决简单听觉要求的最佳方法。退一步说明你想要实现的目标的基础,以及如何通过Javascript / HTML“合法地”要求浏览器这样做。