我有一个用coffeescript编写的函数,它以前工作得很好,但现在在ie8中抛出了一个“无效指针”异常。
Coffee脚本
convertSVGforIE = ->
if not $.support.svg or device.ff36
imagesToConvert = $('img.SVG')
imagesToConvert.each ->
imageSrcMinus = this.src.substr 0, this.src.length - 3
this.src = imageSrcMinus + 'png'Javascript
convertSVGforIE = function() {
var imagesToConvert;
if (!$.support.svg || device.ff36) {
imagesToConvert = $('img.SVG');
return imagesToConvert.each(function() {
var imageSrcMinus;
imageSrcMinus = this.src.substr(0, this.src.length - 3); //Invalid pointer
return this.src = imageSrcMinus + 'png';
});
}
};我看不出我的脚本有什么问题。请帮我确定一下,IE8的问题是什么?
更新:我让它工作了,但不是以好的方式
convertSVGforIE = ->
if not $.support.svg or device.ff36
$('img.SVG').each ->
that = $(this)
imageSrcMinus = that.attr('src').substr 0, that.attr('src').length - 3
that.attr 'src', imageSrcMinus+'png'上面的脚本可以工作,但是为什么$(this).attr('src')可以工作呢?而this.src不是吗?为什么只在IE中使用?
发布于 2012-03-12 07:25:47
如果你看看http://msdn.microsoft.com/en-us/library/ms534643(v=vs.85).aspx,它说
elem.src,而如果你看一下该页面上的评论,还有其他一些奇怪的地方。
使用jQuery无疑是这里最简单的修复方法,同时还具有IE6-7兼容性的副作用,但是您可能也想尝试添加
<meta http-equiv="X-UA-Compatible" content="IE=8" />拖动到页首以强制IE8进入标准模式。
发布于 2013-11-29 10:54:07
实际上,所有版本的IE都支持图像的.src属性。MSDN文档非常混乱,因为它似乎暗示该属性只在IE8或更高版本中受支持;但这是错误的。
但是,当您尝试读取数据URI大于4K的图像的.src时,IE8中会出现无效指针错误。http://support.microsoft.com/kb/2688188上记录了此错误,建议的修复方法是更新浏览器。
但有一个简单的解决方法,即在图像属性集合中引用SRC,即不是这样:
img.src使用以下命令:
img.attributes.src.valuehttps://stackoverflow.com/questions/9659251
复制相似问题