【问题标题】:How to handle body onload event in <head> tag如何处理 <head> 标签中的 body onload 事件
【发布时间】: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页面上不起作用。

标签: javascript jsp sitemesh


【解决方案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();">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多