所以,我有一个Javascript文件:
function resize(id) {
var newheight;
var newwidth;
id = id.trim();
if (document.getElementById) {
newheight=document.getElementById(id).contentWindow.document .body.scrollHeight;
newwidth=document.getElementById(id).contentWindow.document .body.scrollWidth;
}
document.getElementById(id).height= (newheight) + 'px';
document.getElementById(id).width= (newwidth) + 'px';
}
document.write("<iframe frameborder='0' id='vote-frame' scrolling='no'></iframe>")
$("#vote-frame").attr("src", "<%= server_embed_url(@server) %>");
$("#vote-frame").load(function(){
resize("vote-frame")
})
这应该将iFrame写入页面,并根据iFrame中内容的宽度/高度调整大小,但由于某些原因无法正常工作。
我在我的页面上显示脚本:
%script{src: server_display_url(@server, format: :js)}
这是Rails'.js.erb的限制,还是不可能,因为iFrame是由document.write动态创建的?
我应该提一下,当我将iFrame直接放入HAML视图时,这一切都运行正常,并且调整大小很好。
编辑:我还尝试了iFrame标签中常用的onload属性:
function resize() {
var id = "vote-frame"
var newheight;
var newwidth;
if (document.getElementById) {
newheight=document.getElementById(id).contentWindow.document .body.scrollHeight;
newwidth=document.getElementById(id).contentWindow.document .body.scrollWidth;
}
document.getElementById(id).height= (newheight) + 'px';
document.getElementById(id).width= (newwidth) + 'px';
}
document.write("<iframe frameborder='0' onload='resize()' src='<%= server_embed_url(@server) %>' id='vote-frame' scrolling='no'></iframe>")
由于某种原因,它仍然没有调整大小......