我有一个iframe:
<iframe id='adsFrame_11'marginwidth='0' marginheight='0' scrolling='no' frameborder='0'></iframe>
在我加载文档后,我想在此iframe中使用以下代码插入html:
function proxyAds(n,id,src){
var doc;
try{
if(document.all && !window.opera){
doc = window.frames['adsFrame_'+id].document;
}else if(document.getElementById){
doc = document.getElementById('adsFrame_'+id).contentDocument;
}
}catch(e){
if(console) console.warn(e);
}
if(doc){
s = '<scr'+'ipt type="text/javascript" src="'+src+'"></scr'+'ipt>';
doc.open()
doc.write(s);
doc.close()
$('#adsFrame_'+id).show();
}else{
setTimeout('proxyAds('+(++n)+','+id+',"'+src+'");', 100);
}
}
这个功能很好用于Opera。 Opera抛出异常:
Uncaught exception: ReferenceError: Security error: attempted to read protected variable: open
此代码有什么问题?
答案 0 :(得分:0)
您是否尝试将src
属性添加到<iframe/>
?
问题可能是Opera认为您插入的iframe是跨域文档。设置本地src(例如一个空的HTML文档)可以解决问题。
例如,您需要一个blank.html
文件,其中包含以下内容:
<html><body></body></html>
然后您可以像这样插入iframe:
<iframe src="blank.html" id='adsFrame_11' marginwidth='0' marginheight='0' scrolling='no' frameborder='0'></iframe>