Javascript函数在IE中不起作用

时间:2013-01-03 15:04:33

标签: php javascript function fusioncharts

我正在使用与 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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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> 

虽然在这种情况下这并不是真的必要,因为你没有使用任何&lt;或者&amp;代码中的符号。

答案 2 :(得分: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>

我添加的行正好在

之上

答案 3 :(得分:0)

您的//-->标记之前似乎缺少</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>