2

我有一个应用程序,我需要在两个表单的 BODY 标记的 onLoad 事件中调用一些 JS。但是,我找不到如何为它们修改标签。有人知道吗?

坦率

4

3 回答 3

6

inkedmn确实为这种情况提供了正确的答案,但总的来说,您可以像这样“提供信息”:

(在视图/控制器/view.ctp 中)

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

(在视图/布局/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

您无需修改​​ body 标记即可在页面加载时执行 Javascript。您可以在适当的布局中包含类似这样的内容:

(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 回答