簡體   English   中英

的Joomla! 在文章的文檔標題中添加腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM