如何处理 <head> 标签中的 body onload 事件
Posted
技术标签:
【中文标题】如何处理 <head> 标签中的 body onload 事件【英文标题】:How to handle body onload event in <head> tag 【发布时间】:2011-09-13 19:49:18 【问题描述】:我在我们的应用程序中使用了站点网格。在装饰器 jsp 中,我在 head 和 body 标记中添加了 <decorator:head>
:
<body onload="<decorator:getProperty property='body.onload'/>" >
所以我想在我的 jsp 页面上处理 body onload
。
我添加了以下内容:
<script type="text/javascript">
function init()
alert("hi");
</script>
</head>
<body onload="javascript:init();">
但是init()
在我的jsp 页面中不起作用。
【问题讨论】:
不要在内联事件处理程序属性中使用javascript:
伪协议;你只是在那里添加了一个无用的 JavaScript 标签。此外,这应该可以按预期工作,究竟什么“不起作用”?
@Narcel:在正文加载时,我想针对不同的分辨率执行一些布局问题。当我们以百分比指定高度时,一个 div 由 jquery 组件组成,它不起作用。所以对于这个在 body onload 中我指定了 Pixel 的高度。但是body onload在jsp页面上不起作用。
【参考方案1】:
为什么不把它全部放在script
元素中呢?比处理元素属性要干净得多:
window.onload = function()
alert('hi');
;
或者,或者,保留init
声明:
window.onload = init;
【讨论】:
感谢您的回复。在正文 onload 事件中,我想处理一些布局问题。在 window.onload 事件中会出现一些闪烁问题。 @amit:body
元素的onload
属性与window.onload
相同
您可能希望使用document.onreadystatechange=init;
,但它有点复杂 -> msdn.microsoft.com/en-us/library/ms536957(v=vs.85).aspx 不同之处在于 window.onload 会在加载文档时 document.onreadystatechange 在加载 html 部分时触发并且不等待图像
@Venimus:感谢您的回复。但是我应该把 document.onreadystatechange=init 放在我的 jsp 页面的哪里。表示是在 head 标签内还是在 head 标签外?【参考方案2】:
试试这个
<script type="text/javascript">
function init()
alert("hi");
</script>
</head>
<body onload="init();">
【讨论】:
以上是关于如何处理 <head> 标签中的 body onload 事件的主要内容,如果未能解决你的问题,请参考以下文章
html5都有哪些新特性,移除了那些元素?如何处理html5新标签的浏览器兼容问题?
IE8 如何处理这个标签 <meta http-equiv=“X-UA-Compatible” content=“IE=9” />