2

私はレールでn00bです。質問は非常に単純です。onLoadイベントのbodyタグ内でjavascript関数を呼び出す方法を知りたいです。

ビューでボディまたはヘッドタグが見つからないため、これを求めています(他の場所で生成されているようです)。

ありがとう

4

3 に答える 3

4

Javascript関数をonloadに関連付けるためにbodyタグを変更する必要はありません。本文でonload属性を使用する代わりに、外部Javascriptファイル内のwindow.onloadに関数を割り当てることができます。

より高度な方法があります。イベントリスナーを使用して同じことを実行し(ページの読み込み時に関数をトリガーします)、ページの読み込みの少し前に、いくつかのリスナー関数を追加したり、DOM対応の関数をトリガーしたりできます。window.onloadを設定するだけが最も簡単な方法であり、Javascriptを邪魔にならないようにします。

于 2009-11-26T21:07:20.190 に答える
2

bodyandheadタグは通常、レイアウトの1つで定義されます。レイアウトはデフォルトでにありますapp/views/layouts

于 2009-11-26T20:57:34.670 に答える
2

EricBréchemierとmtyakaはどちらも正しいです。

別のアプローチ(ビューごとに指定されるヘッダー/フッターにカスタム要素を追加する必要がある場合は、yieldブロックを使用してこのようなことを行う必要があります

これは、タイトルをページごとにオーバーライドできるようにする例ですが、同じ技術がscriptHTMLヘッドタグでのタグの設定にも適用されます。

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>
于 2009-11-27T04:55:06.903 に答える