当前位置

在Drupal的head中加入html,js代码

James Qi 在 2011年1月9日 - 18:21 提交
内容摘要:以前在MediaWiki中是通过修改皮肤文件、MediaWiki namespace下页面等方式来在页面中添加js,css等代码的,现在使用Drupal后也必须找到合适的办法,最近进行的一些实验记录如......

  以前在MediaWiki中是通过修改皮肤文件、MediaWiki namespace下页面等方式来在页面中添加js,css等代码的,现在使用Drupal后也必须找到合适的办法,最近进行的一些实验记录如下:

1. 插入办法

  可以修改php文件或者block区块:

1.1 直接修改php文件

  最直接的办法是去themes/garland下修改page.tpl.php,将需要插入的Google DFP、Analytics、css文件链接等代码嵌入到合适的地方。

1.2 添加Block区块

  这个办法很灵活,可以设置多个Block来插入不同的代码,每个Block还可以设置不同的显示条件(例如只出现在“博客/*”这样的页面中)、不同的出现位置。

1.3 单独页面中添加

  对于代码只需要添加到少量页面中的情况,可以在这些个别页面中用php方式编辑,代码只出现在这些页面的head中。

2. 插入代码

  Block中办法是通过插入php代码或者html代码来实现的,当需要插入到</head>之前时,可以用这样的代码分别插入HTML代码和JavaScript代码:

2.1 head中HTML代码

  调用drupal_set_html_head,例如:

<?php
drupal_set_html_head( '
<style type="text/css" media="all">@import "/themes/garland/add.css";</style><script type="text/javascript" src="http://partner.googleadservices.com/gampad/google_service.js">
</script>
');
?>

2.2 head中JavaScript代码

  调用drupal_add_js,例如:

<?php
drupal_add_js('
  var _gaq = _gaq || [];
  _gaq.push(["_setAccount", "UA-241337-4"]);
  _gaq.push(["_trackPageview"]);
 
  (function() {
    var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true;
    ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";
    var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s);
  })();
', 'inline');
?>

2.3 body中各种代码

  后面在Block、单独页面中插入的办法显得更加灵活一些,head以外的body中插入各种代码也一样可以使用。

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
验证码
本问题用于测试您是否为人类访问者,避免自动垃圾发贴。
图形验证
键入显示在图片中的字符