添加到cakePHP应用的标签

时间:2009-12-18 22:54:37

标签: templates cakephp onload

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

3 个答案:

答案 0 :(得分: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; ?>">

答案 1 :(得分: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;
祝你好运 - 如果这个答案不能令人满意,请澄清你的问题。

答案 2 :(得分:0)

我执行以下操作:

我们在身体中应用$ bodyLoad

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

已经在我的[行动]中。 Ctp,我做了以下几点:

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

如果您愿意,也可以将此代码放入控制器中。

祝你好运