這是有效的,但實際上並不是一個好的做法,而是出於特殊目的。我建議首先不要加載不需要的腳本。
可以隨後使用像這樣的函數刪除腳本。
/**
* Removes a previously appended script file.
*
* @param string $src The source path of the script file.
* @return boolean Returns TRUE, if the removal has been a success.
*/
public function removeScript($src) {
$headScriptContainer = Zend_View_Helper_Placeholder_Registry::getRegistry()
->getContainer("Zend_View_Helper_HeadScript");
$iter = $headScriptContainer->getIterator();
$success = FALSE;
foreach ($iter as $k => $value) {
if(strpos($value->attributes["src"], $src) !== FALSE) {
$iter->offsetUnset($k);
$success = TRUE;
}
}
Zend_View_Helper_Placeholder_Registry::getRegistry()
->setContainer("Zend_View_Helper_HeadScript",$headScriptContainer);
return $success;
}
請注意,strpos
功能在此處使用。這將刪除其路徑中具有$src
的每個腳本。當然你可以改變你的需求。
只是一個猜測,但我認爲你可以通過操縱佔位註冊表做...'Zend_View_Helper_Placeholder_Registry :: getRegistry() - > getContainer(「Zend_View_Helper_HeadScript」)' – Orangepill
謝謝!我實際上是這樣做的。我會稍後發佈解決方案。 – twigmac
爲什麼你需要刪除這個腳本?可能更好的做法是防止附加它而不是刪除。 – takeshin