如何处理 <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 标记中添加了 &lt;decorator:head&gt;

<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 事件的主要内容,如果未能解决你的问题,请参考以下文章

Ionic2如何处理屏幕阅读器文本?

mybatis 动态标签如何处理多余的逗号和and?

html5都有哪些新特性,移除了那些元素?如何处理html5新标签的浏览器兼容问题?

数据篇34 # 如何处理多元变量?

数据篇34 # 如何处理多元变量?

IE8 如何处理这个标签 <meta http-equiv=“X-UA-Compatible” content=“IE=9” />