如何从Drupal 7中的某个内容类型中删除CSS和JS

时间:2012-04-13 09:48:45

标签: javascript css drupal impress.js

在寻找如何根据其视图模式和内容类型有选择地将CSS或JS添加到给定节点之后,我来到这里。这个问题在这里很简单(http://stackoverflow.com/questions/8295498/how-to-add-css-and-js-files-on-node-pages-independent-of-the-theme)。< / p>

现在我想要清除所有内容:我正在寻找一种方法来展示我想要的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我想摆脱,但这解释了这个想法)。但它没有用,但是:)

编辑。对于糟糕的标记我很抱歉,我正在寻找一种清理/标记代码的方法。

1 个答案:

答案 0 :(得分: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.
        );
    }
}

强尼