0

我将一个函数与FusionCharts结合使用。如果找不到数据,我正在使用一个摆脱图表的函数。该函数来自 FusionCharts。

它在 Firefox 和 Chrome 上运行良好,但在 IE 中破坏了整个 Drupal 页面。你能看一下代码,看看我是否写错了。谢谢。

<script type='text/javascript'><!--
    FusionCharts('Yield_Tab_3a_Growth_of_100000').addEventListener (
        ['NoDataToDisplay', 'DataXMLInvalid'],
        function() {
            FusionCharts('Yield_Tab_3a_Growth_of_100000').dispose(); 
        }
    );
</script> 
4

4 回答 4

1

正如其他人所提到的,主要问题是您缺少评论的结尾,但是防止 JavaScript 干扰您的 HTML 标记的更现代的方法是使用 CDATA 块:

<script type='text/javascript'>
   //<![CDATA[
    FusionCharts('Yield_Tab_3a_Growth_of_100000').addEventListener (
        ['NoDataToDisplay', 'DataXMLInvalid'],
        function() {
            FusionCharts('Yield_Tab_3a_Growth_of_100000').dispose(); 
        }
    );
   //]]>
</script> 

尽管在这种情况下这并不是真正必要的,因为您没有在代码中使用任何 < 或 & 符号。

于 2013-01-03T15:23:08.537 回答
1

删除<!--. 你不应该再使用这些评论标签了。 https://stackoverflow.com/a/808850/897559

于 2013-01-03T15:13:00.963 回答
0

我看到您从一开始就缺少一个评论标签。IE 可能对此更敏感一些

<script type='text/javascript'><!--
    FusionCharts('Yield_Tab_3a_Growth_of_100000').addEventListener (
        ['NoDataToDisplay', 'DataXMLInvalid'],
        function() {
            FusionCharts('Yield_Tab_3a_Growth_of_100000').dispose(); 
        }
    );
    //-->
</script>

我添加的行就在上面

于 2013-01-03T15:09:27.700 回答
0

您的标签//-->之前似乎缺少 a :</script>

<script type='text/javascript'><!--
    FusionCharts('Yield_Tab_3a_Growth_of_100000').addEventListener (
        ['NoDataToDisplay', 'DataXMLInvalid'],
        function() {
            FusionCharts('Yield_Tab_3a_Growth_of_100000').dispose(); 
        }
    );
    //-->
</script> 

没有它,您将拥有一个未关闭的 HTML 注释。这可能会严重破坏您的页面。

-->: HTML 注释结束
//:-->在你的 JavaScript 中注释掉,以防止语法错误。

但是,现在您可以完全删除评论:

<script type='text/javascript'>
    FusionCharts('Yield_Tab_3a_Growth_of_100000').addEventListener (
        ['NoDataToDisplay', 'DataXMLInvalid'],
        function() {
            FusionCharts('Yield_Tab_3a_Growth_of_100000').dispose(); 
        }
    );
</script> 
于 2013-01-03T15:09:36.287 回答