这次在项目中遇到一个bug:
ie6下iframe不显示内容,一片空白,如果直接访问iframe地址的话,是可以访问的,也就是说是js的问题。
1、bug代码我是这样写的。
var TEMPLATE = {
'buyFrame': '<#et data>'+
'<iframe width="469" height="367" scrolling="no" frameborder="0" src="${url}" >'+
'</iframe>'+
'</et>'
};
layer.html( $.easyTemplate(TEMPLATE['buyFrame'],{data:url} );
也就是说,用模板引擎替换url的方法。当然这显然是木有必要的,模板在此项目中是不需要服用的。这貌似也是问题的根源之一。
2、网上找了半天,有的给的答案是这样的:
1)宽高固定
2 )border:0
3) src 不能直接放在第一属性,也就是说不能写成<iframe src=””
这3条我都没有,于是怀疑是模板引擎的原因,遂弃用之。但依旧没内容。
3、经过多方尝试,想到,也许先出iframe再写url的方式,也就是等一下的感觉。
于是写成了这样:
'buyFrame':
'<iframe width="469" height="367" frameborder="0" scrolling="no" >'+
'</iframe>'
layer.html( TEMPLATE['buyFrame'] );
居然成功了……虽然不知道原理,但也许跟setTimeout(0)一样,需要加入执行队列里去。
3、虽然成功了,但iframe只显示了我加入的链接页面,这个页面本来是要跳转的,结果跳不动了、
好吧,依旧是js的问题。又经过多方尝试,原来去掉 scrolling=”no” 就好了!
本来想为避免样式问题,不显示滚动条,显然又多此一举了……
4、总结一下就是原因未知,但问题解决了
真是不靠谱的debug……ie6走好不送……
记于2013年07月29日 EOF
点击评论或查看评论。