2

2 つのフォームの BODY タグの onLoad イベントで JS を呼び出す必要があるアプリがあります。ただし、それらのタグだけを変更する方法が見つかりません。誰か知っていますか?

フランク

4

3 に答える 3

6

inkedmnは確かにこのケースに正しい答えを提供しましたが、一般的には、次のように「情報を渡す」ことができます。

(views / controller / view.ctp内)

$this->set('bodyAttr', 'onload="something"');

(views / layouts / default.ctp内)

<?php
    if (isset($bodyAttr)) {
        $bodyAttr = " $bodyAttr";
    } else {
        $bodyAttr = null;
    }
?>
<body<?php echo $bodyAttr; ?>>

私はよくこのように使用して、「トップレベルの要素」にクラスを追加します。

<?php
    if (!isset($docClass)) {
        $docClass = null;
    }
?>
<div id="doc" class="<?php echo $docClass; ?>">
于 2009-12-19T02:25:13.107 に答える
5

ページの読み込み時に Javascript が実行されるように body タグを変更する必要はありません。必要に応じて、レイアウトに次のようなものを含めることができます。

(jQuery)

$("body").load(
    function(){
        // do stuff when the body element is loaded.
    }
);

または、document.ready イベントが発生したときにコードを実行する場合は、次のようにします。

$(function(){
        // do stuff when the document is ready
    }
);

または、jQuery を使用したくない場合は、次のようにすることもできます。

function doStuff(){
    // whatever you want to happen when the load completes
}

window.onload = dostuff;

頑張ってください。この回答が満足のいくものでない場合は、質問を明確にしてください。

于 2009-12-18T23:00:02.367 に答える
0

私は次のことを行います:

体に $ bodyLoad を適用します

<body <? = (isset ($ bodyLoad)? 'onload = \''. $ bodyLoad.' \'',''); ?> >

すでに[アクション]中です。Ctp、私は次のことを行います:

<? php $ this-> set ('bodyLoad', 'field.focus ();');?>

必要に応じて、このコードをコントローラーに入れることもできます。

幸運を

于 2013-06-04T19:24:15.250 に答える