我有一个应用程序,我需要在两个表单的BODY标记的onLoad事件中调用一些JS。但是,我找不到如何修改标签。有谁知道吗?
谢
答案 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 ();');?>
如果您愿意,也可以将此代码放入控制器中。
祝你好运