javascript onload函数起作用,onresize不起作用
我在页眉中有一个函数来调整javascript onload函数起作用,onresize不起作用,javascript,onload,Javascript,Onload,我在页眉中有一个函数来调整iframe的大小,我在页脚中调用它,用于窗口.onload和窗口.onresize var resize = function(elementId) { document.getElementById(elementId).height = parseInt(document.getElementById(elementId).offsetWidth)*0.63; }; onload工作: window.onload = resize("yo
iframe
的大小,我在页脚中调用它,用于窗口.onload
和窗口.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
您需要返回一个函数(也可能需要缓存元素,就像我所做的那样):
上述功能仍然允许您执行:
window.onload = resize("youtube");
由于resize
现在返回一个回调窗口。onload
(理论上)现在与:
window.onload = function(){
var element = document.getElementById("youtube");
element.height = parseInt(element.offsetWidth) * 0.63;
};
您正在立即执行函数,而不是返回函数 因此,如果您记录
window.onload
包含的内容,它将包含undefined
您需要返回一个函数(也可能需要缓存元素,就像我所做的那样):
上述功能仍然允许您执行:
window.onload = resize("youtube");
由于resize
现在返回一个回调窗口。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.onresize
(以及window.onload
)应该是函数引用
window.onresize = function () {
resize('youtube')
}
您的实现将执行函数,并将返回值分配给
窗口
属性 所以应该window.onload
@qwertynl是的,当然可以。这很好用!非常感谢。然而,我很好奇为什么当我不打电话给function@mr.musicman函数立即被调用。窗口可能已经加载,函数运行了两次。当它到达那一行时,它正在调用函数(这可能是窗口加载的时候)。因此应该window.onload
@qwertynl肯定是的。这非常有效!非常感谢。然而,我很好奇为什么当我不打电话给function@mr.musicman函数立即被调用。窗口可能已经加载,函数运行了两次。当它到达那一行时,它正在调用函数(无论如何,这可能是窗口加载的时候)。我没有否决答案,我认为这很好。但是当我在页眉javascript中实现更改时(保持页脚函数不变),onresize
可以正常工作,但是onload
不能。@musicman先生两人都没有做任何事情。您的功能刚刚立即运行。它与加载无关,您的元素恰好在函数运行两次时加载。@mr.musicman您不能有多个窗口。onload
s,您可以使用addEventListener
或将所有元素放在一个函数中。@qwertynl您被否决,因为我想有些人不太理解闭包。@mr.musicman这是一个游戏,您必须学会如何玩:P欢迎!祝你在这里过得愉快(哦,只需发布新问题,然后跳到JS聊天室,我们可以在那里帮助你:)我没有否决答案,我认为这很好。但是当我在页眉javascript中实现更改时(保持页脚函数不变),onresize
可以正常工作,但是onload
不能。@musicman先生两人都没有做任何事情。您的功能刚刚立即运行。它与加载无关,您的元素恰好在函数运行两次时加载。@mr.musicman您不能有多个窗口。onload
s,您可以使用addEventListener
或将所有元素放在一个函数中。@qwertynl您被否决,因为我想有些人不太理解闭包。@mr.musicman这是一个游戏,您必须学会如何玩:P欢迎!祝您在这里过得愉快(哦,只需发布新问题,然后跳到JS聊天室,我们可以在那里帮助您:)Downvoter:这个问题怎么了?Downvoter:这个问题怎么了?