javascript
  • php
  • internet-explorer-8
  • highcharts
  • 2014-01-06 75 views 0 likes 
    0

    我正在使用Highcharts仪表。在Chrome/Firefox/Safari浏览器中完美工作 - 不管IE计量针是否出现在IE中。这在PHP中得到了回应。代码中的“// Add some life”部分全部设置为0,以便针不移动。Highcharts仪表不能在IE8中工作

    echo "<div id='gauges'><h2>Points Achievements 
    </h2><div id='junior' class='gauge'> 
    <script type='text/javascript'> 
    $(function() { 
    
    $('#junior').highcharts({ 
    
        chart: { 
         type: 'gauge', 
         plotBackgroundColor: null, 
         plotBackgroundImage: null, 
         plotBorderWidth: 0, 
         plotShadow: false, 
         backgroundColor:'rgba(255, 255, 255, 0.1)' 
        }, 
    
        credits: { 
        enabled: false 
        }, 
    
        title: { 
         text: 'Junior Club Award' 
        }, 
    
        pane: { 
         startAngle: -150, 
         endAngle: 150, 
         background: [{ 
          backgroundColor: { 
           linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 
           stops: [ 
            [0, '#FFF'], 
            [1, '#333'] 
           ] 
          }, 
          borderWidth: 0, 
          outerRadius: '109%' 
         }, { 
          backgroundColor: { 
           linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 
           stops: [ 
            [0, '#333'], 
            [1, '#FFF'] 
           ] 
          }, 
          borderWidth: 1, 
          outerRadius: '107%' 
         }, { 
          // default background 
         }, { 
          backgroundColor: "; if($junior_sum >= 25){ echo "'#B1FCBC'";}else{ echo "'#DDD'"; } echo", 
          borderWidth: 0, 
          outerRadius: '101%', 
          innerRadius: "; if($junior_sum >= 25){ echo "'1%'";}else{ echo "'100%'"; } echo " 
         }] 
        }, 
    
        // the value axis 
        yAxis: { 
         min: 0, 
         max: 25, 
    
         minorTickInterval: 'auto', 
         minorTickWidth: 1, 
         minorTickLength: 10, 
         minorTickPosition: 'inside', 
         minorTickColor: '#666', 
    
         tickPixelInterval: 30, 
         tickWidth: 2, 
         tickPosition: 'inside', 
         tickLength: 10, 
         tickColor: '#666', 
         labels: { 
          step: 2, 
          rotation: 'auto' 
         }, 
         title: { 
          text: 'You have...' 
         }, 
         plotBands: [{ 
          from: 0, 
          to: " . $junior_sum .", 
          color: '#009FF5' // dark blue 
         },{ 
    
          from: " . $junior_sum . " , 
          to: 25, 
          color: '#92CFF0' // light blue 
    
         }, 
    
            ]   
         }, 
    
        series: [{ 
         name: 'Points Earned', 
         data: [" . $junior_sum . "], 
         tooltip: { 
          valueSuffix: '' 
         } 
        }] 
    
    }, 
    // Add some life 
    function (chart) { 
        if (!chart.renderer.forExport) { 
         setInterval(function() { 
          var point = chart.series[0].points[0], 
           newVal, 
           inc = 0; 
    
          newVal = point.y + inc; 
          if (newVal < 0 || newVal > 200) { 
           newVal = point.y - inc; 
          } 
    
          point.update(newVal); 
    
         }, 3000); 
        } 
    }); 
    });"; 
    
    echo "</script></div>"; 
    

    回答

    2

    在代码你plotBands部分你有一个悬空逗号:

    plotBands: [{ 
           from: 0, 
           to: " . $junior_sum .", 
           color: '#009FF5' // dark blue 
          }, { 
    
           from: " . $junior_sum . ", 
           to: 25, 
           color: '#92CFF0' // light blue 
    
          }, //here is your dangling comma 
    
          ] 
    

    IE不善待那些。既然不要用数据列出你的实际js,if语句不会解析,但我会在那里检查无效的语法。如果可能的话,建立一个jsFiddle,这个js看起来像图表一旦它被PHP解析后的样子。

    +0

    那里的摇晃逗号在哪里? –

    +0

    我知道这是一个可能的原因 - 但我找不到逗号。当它被解析时,变量是1个数字,没有逗号或任何东西。 –

    +0

    逗号逗号紧跟最后一个大括号:'},'。我不知道你的解析代码中是否有任何 - 你必须检查。 – wergeld

    相关问题