gpt4 book ai didi

php - 防止在 Yii 框架上使用 ajaxButton/ajaxSubmitButton 加载 jQuery Assets

转载 作者:可可西里 更新时间:2023-10-31 23:59:00 25 4
gpt4 key购买 nike

我的布局上有 jQuery 加载资源,我想使用 CHtml::ajaxButton/ajaxSubmitButton。但是当我在运行时将它与另一个渲染器一起使用时,它会再次加载 jQuery Assets 并出错。如何防止脚本加载?

<?php echo CHtml::ajaxSubmitButton( 'Submit',
CHtml::normalizeUrl(array('site/AjaxRequest/30')),
array(
'error'=>'js:function(){
alert(\'error\');
}',
'beforeSend'=>'js:function(){
alert(\'beforeSend\');
}',
'success'=>'js:function(data){
alert(\'data from server: \'+data);
}',
'complete'=>'js:function(){
alert(\'complete\');
}',
//'update'=>'#response',
)
);
?>

最佳答案

在我看来,这也是一个非常烦人的问题。我解决的方法是创建 CClientScript 的派生类并将其用作 clientScript 组件(您可以覆盖配置文件中的类类型):

'clientScript' => array
(
'class' => 'MyClientScript',
),

我的类覆盖了“registerCoreScript”函数,该函数用于注册 jQuery 和 Yii 包含的其他基本脚本。我在那里所做的几乎是添加对 ajax 的检查,如果是,则不将其传递给父类。它看起来像这样:

public function registerCoreScript($sName)
{
if (Yii::app()->request->isAjaxRequest)
return $this;

return parent::registerCoreScript($sName);
}

这可以防止在 ajax 调用期间加载任何核心脚本(并再次添加 Assets )。

您也可以对其中的其他函数执行相同的操作(例如 registerScriptFile)

希望对您有所帮助。

关于php - 防止在 Yii 框架上使用 ajaxButton/ajaxSubmitButton 加载 jQuery Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11078103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com