2012-04-13 77 views
1

我在尋找如何根據其視圖模式和內容類型選擇性地將CSS或JS添加到給定節點後來到這裏。這個問題在這裏很直接地回答(http://stackoverflow.com/questions/8295498/how-to-add-css-and-js-files-on-node-pages-independent-of-the-theme)。如何從Drupal 7中的特定內容類型中刪除CSS和JS

現在我很想清楚一切:我正在尋找一種方式來顯示我想要的CSS和JS,但只有,沒有其他的JS和CSS。我試圖集成Impress.js(我不喜歡可用的解決方案),它似乎與Jquery衝突,因爲兩個腳本都已正確加載,但最新的Firefox和Chromium瀏覽器都會拋出「舊瀏覽器」消息。

任何有關如何取消設置每個CSS和JS的想法,以便我想使用的CSS和JS是唯一真正活動的想法?

謝謝!

我試過以下,沒有成功:

$mycss = $vars['styles']; 

unset($micss[drupal_get_path('module','system') .'/system.base.css']); 

... 

unset($micss[drupal_get_path('module','toolbar') .'/toolbar.css']); 

$vars['styles'] = $mycss; 

(我加了很多不同的CSS我想擺脫,但這個解釋的想法)。它沒有工作,雖然:)

編輯。對於糟糕的標記,我很抱歉,我正在尋找清除/標記代碼的方法。

+0

編程? – jantimon 2012-04-13 09:52:39

+0

如果它是以編程方式完成的,將其添加到我現在具有通用模塊的代碼中,那將很好。對於快速解決方案,任何事情都可以。 – versvs 2012-04-13 10:29:54

回答

2

在您的自定義模塊使用:

function yourmodule_js_alter(&$js) { 
    unset(
     $js['misc/drupal.js'], 
     $js['misc/jquery.js'] 
     .... etc. 
    ); 
} 

你說你要只對某些內容類型做到這一點,所以嘗試:

if(arg(0) == 'node') { 
    $node = node_load(arg(1)); 
    if($node->type == 'your_content_type') { 
     unset(
      $js['misc/drupal.js'], 
      $js['misc/jquery.js'] 
      .... etc. 
     ); 
    } 
} 

強尼

+0

儘管我的問題依然存在(似乎這與jquery vs impress沒有關係),我的問題在這裏得到了正確的回答...很贊。回想起來,這是相當可觀的事情......只是知道正確的鉤子尋找:)謝謝! – versvs 2012-04-13 15:15:46