我的标题中有一个功能可以调整iframe
的大小,我会在window.onload
和window.onresize
的页脚中调用它。
var resize = function(elementId) {
document.getElementById(elementId).height = parseInt(document.getElementById(elementId).offsetWidth)*0.63;
};
onload
有效:
window.onload = resize("youtube");
onresize
没有:
window.onresize = resize("youtube")
如果我的javascript出错了,请原谅我。我还是有点新鲜的。
答案 0 :(得分:4)
您正在执行功能而不是返回功能。
因此,如果您记录window.onload
包含的内容,则会包含undefined
你需要返回一个函数(你可能想要像我一样缓存元素):
var resize = function(elementId) {
return function(){
var element = document.getElementById(elementId);
element.height = parseInt(element.offsetWidth) * 0.63;
};
};
上述内容仍允许您这样做:
window.onload = resize("youtube");
由于resize
现在返回回调window.onload
(理论上)现在与以下内容相同:
window.onload = function(){
var element = document.getElementById("youtube");
element.height = parseInt(element.offsetWidth) * 0.63;
};
答案 1 :(得分:3)
window.onresize
(以及此问题window.onload
)应该是函数引用;
window.onresize = function () {
resize('youtube')
}
您的实现将执行函数并将返回值分配给window
属性。