javascript onload函数有效,onresize则无效

javascript onload function works, onresize does not

本文关键字:onresize 无效 有效 onload 函数 javascript      更新时间:2024-03-05

我在页眉中有一个函数来调整iframe的大小,并在页脚中为window.onloadwindow.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有任何错误,请原谅我。我还是个新手。

您正在立即执行函数,而不是返回函数。

因此,如果您记录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;
};

window.onresize(以及window.onload)应该是函数引用;

window.onresize = function () {
  resize('youtube')
}

您的实现将执行函数并将返回值分配给window属性。