【发布时间】:2009-11-26 20:08:50
【问题描述】:
我在轨道上很n00b。问题很简单,我想知道如何在 onLoad 事件的 body 标记内调用 javascript 函数。
我问这个是因为在视图中我找不到任何身体或头部标签(就像它们是在其他地方生成的一样)。
谢谢
【问题讨论】:
标签: javascript ruby-on-rails onload onload-event
我在轨道上很n00b。问题很简单,我想知道如何在 onLoad 事件的 body 标记内调用 javascript 函数。
我问这个是因为在视图中我找不到任何身体或头部标签(就像它们是在其他地方生成的一样)。
谢谢
【问题讨论】:
标签: javascript ruby-on-rails onload onload-event
您无需修改 body 标记即可将 Javascript 函数与 onload 相关联。您可以在外部 Javascript 文件中将函数分配给 window.onload,而不是使用主体上的 onload 属性。
还有更高级的方法,使用事件监听器来做同样的事情(在页面加载时触发函数),这将允许在页面加载前一点/一段时间在 DOM 就绪时添加多个监听器函数或触发函数。只设置 window.onload 是最简单的方法,并且会让你的 Javascript 不显眼。
【讨论】:
body 和head 标签通常会在其中一种布局中定义。布局默认位于app/views/layouts。
【讨论】:
Eric Bréchemier 和 mtyaka 都是正确的。
另一种方法(如果您需要将自定义元素添加到基于每个视图指定的页眉/页脚中,您需要使用 yield 块执行类似的操作
这是一个允许在每页基础上覆盖标题的示例,但同样的技术也适用于在 HTML 头部标签中设置 script 标签。
app/views/layouts/posts_layout.html.erb
<html>
<head>
<title><%= yield(:page_title) || "My awesome site"%></title>
</head>
<body><%= yield %> </body>
</html>
app/views/posts/index.html.erb
<%= content_for :page_title, "post listing" %>
<h1>Here are your posts...</h1>
【讨论】: