有没有办法检查sfContext是否已经添加了jQuery库, 使用:
sfContext::getInstance()->getResponse()->addJavascript('/js/jquery-1.4.2.min.js');
或
addJavascript('jquery-1.4.2.min.js', sfView::getContext());
或
use_javascript('jquery-1.4.2.min.js');
在模板中?
在我看来,添加更多jQuery可以阻止他们的行动。
答案 0 :(得分:2)
您应该使用自己的支票。
sfWebResponse
addJavascript
所以在myWebResponse.class.php
文件夹中创建一个新的/lib/response/
文件(创建它),使用以下代码:
class myWebResponse extends sfWebResponse
{
public function addJavascript($file, $position = '', $options = array())
{
$this->validatePosition($position);
// check if the file to add is jquery
// nb: you might update the regex
if (preg_match('/jquery/i', $file))
{
// retrieve all loaded js
$files = array_keys($this->getJavascripts());
// check if one them containt jquery
// nb: you might update the regex
$isJquery = preg_grep("/jquery/i", $files);
// jquery found so do not add the file
if ( ! empty($isJquery))
{
return;
}
}
$this->javascripts[$position][$file] = $options;
}
然后,默认情况下使用新的响应。在apps/frontend/config/factories.yml
中,添加:
all:
response:
class: myWebResponse
你已经完成了。