[英]Joomla! add script in document head from article
我們有幾個頁面需要特別注意,將從外部腳本調用jquery-ui,這些腳本將“以某種方式”添加到文章的開頭。
我嘗試使用jumi,但這不是最佳選擇(包括js而不是php會將其呈現在html主體中),我可以添加javascript文件的唯一方法是通過包含將回顯a的php文件,但可以想象,這在性能上既不優雅也不高效。
另一種嘗試是代替使用腳本,而是嘗試使用:
<?php
$document = &JFactory::getDocument();
$document->addScript( "path/to/jsfile.js" );
?>
但是它沒有按我預期的那樣工作,似乎joomla在此php腳本有機會執行之前創建了head節。
我還提供了簡單的標頭,但是,似乎所有文章中都包含文件,我不希望這樣做,因為它將對帶寬和將來可能出現的JavaScript問題產生很大的影響。
我是joomla的新手,所以提供一些靈活性的任何方法都可以作為答案。
如果有不清楚的地方,請詢問,我將盡力回答。
請注意,我正在使用joomla 1.7和php5。
Jumi使用onAfterRender事件(查看2.0.6插件)-到這個時候,我認為<head>標記已經被寫出,實際上整個文檔已經被渲染。
您可以嘗試獲取文檔正文,然后搜索結束標記</ head>並在其之前插入腳本鏈接。 像這樣:
$myJS = "<script type='text/javascript' src='http://mysever.com/my.js'>"
$content = JResponse::getBody(); // gets the html in it's ready to send to browser form
$hdPos = strpos($content, '</head>');
$hdPos += 7; //move position to include the <head> tag
$bodyLen = strlen($content);
$content = substr($content, 0, $hdPos) . $myJS . substr($content, $hdPos, $bodyLen);
JResponse::setBody($content);
注意: 這是未經測試的,這些天我不使用Jumi,但是應該很近。
您不必經歷所有這一切! 轉到:擴展->模板管理器->模板標簽(默認情況下為“樣式”)->轉到模板,然后單擊“編輯HTML”。 您將能夠直接在標頭中添加代碼,並將其加載到所有頁面中。
更為優雅的方法是定義一個函數,該函數可以執行標題中所需的操作,然后從所需特定文章的正文中調用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.