【问题标题】:How to remove CSS and JS from a certain content-type in Drupal 7如何从 Drupal 7 中的特定内容类型中删除 CSS 和 JS
【发布时间】:2012-04-13 09:48:44
【问题描述】:

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

现在我想澄清一切:我正在寻找一种方法来显示我想要的 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,但这解释了这个想法)。但它没有用:)

编辑。很抱歉标记不好,我正在寻找清理/标记代码的方法。

【问题讨论】:

  • 如果它以编程方式完成,添加到我现在拥有的代码中,它将成为一个通用模块,那就太好了。对于一个快速的解决方案,任何事情都可以。

标签: javascript css drupal impress.js


【解决方案1】:

在您的自定义模块中使用:

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.
        );
    }
}

强尼

【讨论】:

  • 虽然我的问题仍然存在(似乎这与 jquery vs impress 无关),但我的问题在这里得到了正确的回答......所以荣誉。回想起来,这很不错......只要知道要寻找的正确钩子:)谢谢!
猜你喜欢
  • 2012-07-14
  • 1970-01-01
  • 2013-09-05
  • 1970-01-01
  • 2014-11-22
  • 2013-10-13
  • 2011-10-11
  • 1970-01-01
  • 2014-10-30
相关资源
最近更新 更多