Drupal在javascript中错误地转义了标签

时间:2010-03-12 05:54:59

标签: php javascript html drupal escaping

我安装了drupal-6.16。 我应用帖子http://drupal.org/node/222926#comment-930745中的补丁。 它在简单的情况下正常工作。 但是下面的计数器代码处理不正确,现在计数器显示在drupal之后的页面上。

Drupal修改字符串

"alt='1Gb.ua counter'><\/a>")</script>

"alt='1Gb.ua counter' />&lt;\/a>")</a></script>

计数器的完整代码如下:

<br><br>
Text
<br><br>
<!-- counter.1Gb.ua -->
<script language="javascript" type="text/javascript">
cgb_js="1.0"; cgb_r=""+Math.random()+"&r="+
escape(document.referrer)+"&pg="+
escape(window.location.href);
document.cookie="rqbct=1; path=/"; cgb_r+="&c="+
(document.cookie?"Y":"N");
</script><script language="javascript1.1" type="text/javascript">
cgb_js="1.1";cgb_r+="&j="+
(navigator.javaEnabled()?"Y":"N")</script>
<script language="javascript1.2" type="text/javascript">
cgb_js="1.2"; cgb_r+="&wh="+screen.width+
'x'+screen.height+"&px="+
(((navigator.appName.substring(0,3)=="Mic"))?
screen.colorDepth:screen.pixelDepth)</script>
<script language="javascript1.3" type="text/javascript">
cgb_js="1.3"</script>
<script language="javascript" 
type="text/javascript">cgb_r+="&js="+cgb_js; 
document.write("<a href='http://www.1Gb.ua?cnt=1416'>"+
"<img src='http://counter.1Gb.ua/cnt.aspx?"+
"u=1416&"+cgb_r+
"&' border=0 width=88 height=31 "+
"alt='1Gb.ua counter'><\/a>")</script>
<noscript><a href='http://www.1Gb.ua?cnt=1416'>
<img src="http://counter.1Gb.ua/cnt.aspx?u=1416" 
border=0 width="88" height="31" alt="1Gb.ua counter"></a>
</noscript>
<!-- /counter.1Gb.ua -->

有人有这个代码吗?

如何修复Drupal以正确的方式处理此代码?

欢迎提出其他建议。

修改

删除评论无法解决问题。

4 个答案:

答案 0 :(得分:1)

仅在将HTML修正器与HTML注释一起使用时才会描述的问题。快速解决方案是删除注释或禁用HTML更正器。

如果HTML校正器可以处理HTML注释会很好,但是IMO HTML注释不属于节点内容等。如果您打算使标记变得如此复杂和特殊而需要注释,那么它就是一个指标它属于你的主题而不是内容。

在您的情况下,您想要添加一些JavaScript。 Drupal有一个函数drupal_add_js,不仅可以添加脚本,还可以使用设置缓存并缩小生产环境。这将提升性能,一般是你想将js添加到Drupal站点的方式。

由于您只是尝试使用Drupal,现在最快的解决方案就是删除HTML注释,您应该没问题。但是,如果您想为实际网站制作一些内容,则应该查看drupal_add_js

当您在此处编辑或创建新过滤器时,可以在admin / settings / filters中找到输入过滤器设置,您可以决定哪些角色可以使用它以及是否应该应用HTML校正器。

答案 1 :(得分:0)

它在drupal 7.x中修复。 详细信息为here

答案 2 :(得分:0)

启用PHP过滤器模块并将输入格式设置为PHP为我解决了这个问题。

答案 3 :(得分:0)

我在Drupal6中随机获取了所有内容的此问题,无论是否启用了编辑器Filtered,Full HTML或PHP。

发现罪魁祸首是PHP中的magic_quotes_gpc标志。

幸运的是,我能够在php.ini中轻松关闭它,这解决了各种奇怪逃逸的问题。