Я хотел бы знать, есть ли способ проверить, зарегистрирован ли coreScript?Yii ClientScript
, например, yiiactiveform
Yii::app()->clientScript->registerCoreScript('yiiactiveform');
как проверить, если это corescript уже зарегистрирован? thanks
Я хотел бы знать, есть ли способ проверить, зарегистрирован ли coreScript?Yii ClientScript
, например, yiiactiveform
Yii::app()->clientScript->registerCoreScript('yiiactiveform');
как проверить, если это corescript уже зарегистрирован? thanks
Зачем вам это нужно знать? Структура достаточно умна, чтобы не регистрировать один и тот же сценарий дважды.
Мне кажется, что вы можете использовать
if(Yii::app()->clientScript->getPackageBaseUrl('yiiactiveform') === false) {
// core script 'yiiactiveform' has not been registered yet
}
или расширить CClientScript и реализовать функцию, чтобы ответить на этот вопрос, но это может быть слишком много.
Если вы делаете на странице материалы, загружая контент, вам, вероятно, (в зависимости от вашего случая) будет лучше использовать renderPartial(), а не рендеринг, это не будет отображать голову и, следовательно, включать любое зарегистрированное ядро скрипты. Это вариант?
yes Я использую renderPartial, потому что im загружает содержимое через ajaxrequest и в renderPartial, I processOutput = true, поэтому jquery внутри renderPartial вернется, но если на текущей странице уже есть jquery, созданный в renderPartial, он все равно сгенерирует код поэтому, например, у меня есть ajaxLink с предупреждением о событиях() .. он будет предупреждать дважды. – butching
Был ли запрос ajax не выполнен с помощью jQuery? Небезопасно ли считать, что если вы сделали запрос Ajax, у вас уже загружен jQuery? Поэтому не загружайте его, если Yii :: app() -> request-> isAjaxRequest – Paystey
В моей функции init в контроллере я уже объявил coreScript ** jquery.js **, а затем на моем ajaxRequest переместиться на другую страницу, которую я использовал renderPartial w/ProcessOutput True и w/this установлено в true, jquery.js также называется coz, внутри него отображаются jqueryscripts внутри, что renderPartial, поэтому, чтобы избежать этого, я использовал этот код '(Yii :: app() -> clientScript-> getPackageBaseUrl ('jquery') === false) ', чтобы проверить, существует ли coreScript. но все еще имейте w/проблемы с некоторыми corescript, которые зарегистрированы после renderPartial, как ** yiiactiveform **, он всегда возвращает false, который уже используется или нет – butching
потому что я использую jquery ajax и при загрузке URL-адреса, Im удаляет исходные тексты, потому что, если я не ... это будет дублировать. поэтому мне нужно проверить, зарегистрирован ли исходный код. Im удалил его с помощью Yii :: app() -> clientScript-> scriptMap(); Спасибо за ваш ответ, это помогает! – butching