Add to <body> tag of a cakePHP app

[亡魂溺海] 提交于 2019-12-22 17:53:31

问题


I have an app where I need to call some JS in the onLoad event of the BODY tag of two forms. However, I can't find how to modify the tag for just them. Does anyone know?

Frank


回答1:


inkedmn certainly has provided the right answer for this case, but in general, you can "hand information up" like this:

(in views/controller/view.ctp)

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

(in views/layouts/default.ctp)

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

I often use it like this to add extra classes to a "top level element":

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



回答2:


You don't need to modify the body tag to have Javascript execute when the page loads. You could just include something like this in your layout where appropriate:

(jQuery)

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

Or, if you want to have the code execute when the document.ready event fires:

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

Or, if you don't want to use jQuery, you could do something like this:

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

window.onload = dostuff;

Good luck - and please clarify your question if this answer isn't satisfactory.




回答3:


I do the following:

We apply $ bodyLoad in my body

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

Already in my [action]. Ctp, I do the following:

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

If you want you can also put this code in the controller.

Good luck



来源:https://stackoverflow.com/questions/1931144/add-to-body-tag-of-a-cakephp-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!