我有一个javascript小部件,可以插入一个普通的html页面,如下所示:
<html>
<head>
<script type='text/javascript' src="http://example.com/widget.js"></script>
</head>
<body>
<script type='text/javascript'>
//<![CDATA[
try{ widget_constructor('key',500,400); }
catch(e){ alert(e.message); }
//]]>
</script>
</body>
</html>
我想在Drupal 6网站的一个页面上插入这个javascript(不是每个页面)。
到目前为止,我已经尝试过在HEAD中获取脚本标记:
然后我将其添加到Drupal页面的正文顶部:
<?php
drupal_set_html_head('<script type="text/javascript" src="http://example.com/widget.js"> </script>');
?>
但是Drupal没有解析php,而是将其打印在页面顶部:
<?php drupal_set_html_head(''); ?>
关于我如何做到这一点的任何建议?
答案 0 :(得分:3)
我宁愿建议通过你主题的template.php添加js。另外正确的方法是drupal_add_js,内联选项: http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_add_js/6
以下是有关如何使用它的更多内容:
http://drupal.org/node/304178#comment-1000798 http://drupal.org/node/482542
答案 1 :(得分:2)
我对Drupal不太熟悉,所以这个答案只是绕过你的小部件而不加载而没有实际回答为什么PHP块没有被解析为PHP的问题。
您无需在<script>
内拨打<head>
标记。您可以将该行放在调用窗口小部件构造函数的<script>
标记的正上方。
<html>
<head>
</head>
<body>
<script type='text/javascript' src="http://example.com/widget.js"></script>
<script type='text/javascript'>
//<![CDATA[
try{ widget_constructor('key',500,400); }
catch(e){ alert(e.message); }
//]]>
</script>
</body>
</html>
答案 2 :(得分:0)
写完全部后,我想出了问题......
完整的html输入格式默认启用了HTML修正过滤器,该过滤器似乎导致PHP代码出现问题。重新排序过滤器以使PHP评估程序首先解决问题。