我有一个应用程序,我需要在两个表单的 BODY 标记的 onLoad 事件中调用一些 JS。但是,我找不到如何为它们修改标签。有人知道吗?
坦率
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; ?>">
您无需修改 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;
祝你好运 - 如果这个答案不令人满意,请澄清你的问题。
我执行以下操作:
我们在我的身体中应用 $ bodyLoad
<body <? = (isset ($ bodyLoad)? 'onload = \''. $ bodyLoad.' \'',''); ?> >
已经在我的[行动]中。Ctp,我执行以下操作:
<? php $ this-> set ('bodyLoad', 'field.focus ();');?>
如果您愿意,您也可以将此代码放入控制器中。
祝你好运