2013-12-18 57 views
0

我有2個JavaScript實例正在Joomla中加載我的'頭'。刪除已加載的javascript的第二個實例

第一個來自模板。 第二個來自一個組件。

我需要刪除下面的第二個實例:

<!-- keep this one --> 
<script src="//code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script> 

<!-- remove this one --> 
<script src="//code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script> 

我將如何做到這一點用PHP?

編輯:

我可以做這樣的事情(不是一個PHP的傢伙)刪除第二個實例?這裏注意到

$string='<script src="//code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>' ; 

$string_array=explode(",","$string"); 

$output[]=$string_array[0]; 

for($i=1;$i<count($string_array);$i++){ 
if(!in_array($string_array[$i],$output)){ 
$output[]=$string_array[$i]; 
} 
} 
print implode(",",$output); 
+0

刪除組件中的行。 – Babblo

+0

首先檢查組件或模板是否具有*不包括庫的選項。否則,請從組件手動刪除註釋或刪除行 – Onimusha

+0

否...組件沒有開關。我想用一些PHP正則表達式來做這件事,因爲它可能會再次發生,我不想編輯組件(刪除腳本),因爲它將在更新時被替換。 – user991830

回答

0

第一點是代碼既不位位特別好寫的 - 既會阻止HTML載入時顯著量的時間,即使是從本地緩存中獲取。使用CMS的主要原因之一是,您可以最大限度地減少HTML外部資源的調用次數,從而提高性能。

我可以做這樣的事情

是的,但你需要打開輸出緩衝,並將其掛接到在正確的點上的代碼,這將是更是一個皮塔保持不是改變插件/模板。

或者你可以實現它作爲一個Apache輸出過濾器 - 但(AFAIK)它不(當前)可以調用fastCGI或mod_php作爲輸出過濾器。您可以實現一個簡單的HTTP代理腳本作爲請求的終點,並在那裏重寫HTML。

合併請求(例如mod_pagespeed)的工具可能會自動刪除重複請求(儘管documentation for mod_pagespeed's combine_javascript未說明它如何處理這種情況)。

相關問題