添加到cakePHP应用程序的<body>标记

Fra*_*uke 2 templates cakephp onload

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

坦率

dec*_*eze 6

inkedmn肯定为这个案例提供了正确的答案,但总的来说,你可以像这样"提供信息":

(在views/controller/view.ctp中)

$this->set('bodyAttr', 'onload="something"');
Run Code Online (Sandbox Code Playgroud)

(在views/layouts/default.ctp中)

<?php
    if (isset($bodyAttr)) {
        $bodyAttr = " $bodyAttr";
    } else {
        $bodyAttr = null;
    }
?>
<body<?php echo $bodyAttr; ?>>
Run Code Online (Sandbox Code Playgroud)

我经常像这样使用它来为"顶级元素"添加额外的类:

<?php
    if (!isset($docClass)) {
        $docClass = null;
    }
?>
<div id="doc" class="<?php echo $docClass; ?>">
Run Code Online (Sandbox Code Playgroud)


ink*_*dmn 5

您不需要修改body标签以在页面加载时执行Javascript.您可以在适当的布局中包含这样的内容:

(jQuery的)

$("body").load(
    function(){
        // do stuff when the body element is loaded.
    }
);
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望在document.ready事件触发时执行代码:

$(function(){
        // do stuff when the document is ready
    }
);
Run Code Online (Sandbox Code Playgroud)

或者,如果您不想使用jQuery,您可以执行以下操作:

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

window.onload = dostuff;
Run Code Online (Sandbox Code Playgroud)

祝你好运 - 如果这个答案不能令人满意,请澄清你的问题.