Javascript 单击表中的行时出现新的Google图表错误。未捕获类型错误:b.split不是一个函数——已经工作了好几年了

Javascript 单击表中的行时出现新的Google图表错误。未捕获类型错误:b.split不是一个函数——已经工作了好几年了,javascript,google-visualization,Javascript,Google Visualization,我们有多个谷歌可视化表,我们已经成功地使用了几年。然而,在过去的一周里,我们开始在他们中的许多人身上看到这种错误 我们试图做的是单击表中的一行,以允许我们基于该行中的内容超链接到另一个页面。正如我所说,它已经工作了好几年。我确切地知道它在哪里断裂。正是这一行触发了错误: var row = table.getSelection()[0].row; 我知道是这一行,因为如果我硬编码一个行的值,超链接将按预期工作 对于在未更改的代码上导致此错误的原因,有什么建议吗 代码如下: &

我们有多个谷歌可视化表,我们已经成功地使用了几年。然而,在过去的一周里,我们开始在他们中的许多人身上看到这种错误

我们试图做的是单击表中的一行,以允许我们基于该行中的内容超链接到另一个页面。正如我所说,它已经工作了好几年。我确切地知道它在哪里断裂。正是这一行触发了错误:

var row = table.getSelection()[0].row;
我知道是这一行,因为如果我硬编码一个行的值,超链接将按预期工作

对于在未更改的代码上导致此错误的原因,有什么建议吗

代码如下:

        <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    
    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.js"></script>


    <script type="text/javascript">

    google.load("visualization", "1.1", {packages:["table"]});
    google.setOnLoadCallback(drawVisualization);

    function drawVisualization() {

                    var d = new google.visualization.arrayToDataTable([$tableReportResults]);

                    var table = new google.visualization.Table(document.getElementById('table_report_results'));

                    var view = new google.visualization.DataView(d);
                            
                    var cssClassNames = {'hoverTableRow': 'hover-table-row', headerCell: 'googleHeaderCell'};
                    var colIndex = 0;
                    var  last_row = d.getNumberOfRows() -1;
                    var ts =  $( "#dropdown_1_dropdown option:selected" ).val();

                    var syear =  $( "#dropdown_2_dropdown option:selected" ).text();
                    syear = encodeURIComponent(syear);
                    google.visualization.events.addListener(table, 'ready', function () {
                        $('.google-visualization-table-table').find('td').each(function() {
                            $(this).mouseover(function(){
                                    colIndex = $(this).index();
                                    var row = $(this).parent().index() - 1; // subtract 1 for the table header
                                    //console.log(row, colIndex);
                             });
                        });
                    });

                        google.visualization.events.addListener(table, 'select', function() {           

                            $('.google-visualization-table-table').find('td').each(function() {
                                $(this).mouseover(function(){
                                        colIndex = $(this).index();
                                        row = $(this).parent().index() - 1; // subtract 1 for the table header
                                        console.log('mouseover = ' + colIndex + ' , ' + row);
                                        }); 
                                });
                                
                        var row = table.getSelection()[0].row;

load(“可视化”、“1.1”、{packages:[“表”]});
setOnLoadCallback(drawVisualization);
函数drawVisualization(){
var d=新的google.visualization.arrayToDataTable([$tableReportResults]);
var table=new google.visualization.table(document.getElementById('table_report_results');
var view=newgoogle.visualization.DataView(d);
var cssClassNames={'hoverTableRow':'hover table row',headerCell:'googleHeaderCell'};
var-colIndex=0;
var last_row=d.getNumberOfRows()-1;
var ts=$(“#下拉列表_1_下拉选项:选中”).val();
var syear=$(“#下拉菜单_2_下拉选项:选中”).text();
syear=编码元件(syear);
google.visualization.events.addListener(表'ready',函数(){
$('.google可视化表').find('td').each(函数(){
$(this.mouseover(function()){
colIndex=$(this.index();
var row=$(this).parent().index()-1;//表头减去1
//console.log(行,colIndex);
});
});
});
google.visualization.events.addListener(表'select',function(){
$('.google可视化表').find('td').each(函数(){
$(this.mouseover(function()){
colIndex=$(this.index();
行=$(this).parent().index()-1;//表头减去1
log('mouseover='+colIndex+','+row);
}); 
});
var row=表。getSelection()[0]。行;

我使用之前版本的google charts解决了我的问题

 <script>
      google.charts.load('49', 
        {packages: ['corechart']});
    </script>

google.charts.load('49',
{包:['corechart']});
或:


{literal}google.charts.load('49',{packages:['corechart','geochart','timeline','gantt','treemap']});{/literal}
如果使用实际版本,您应根据以下信息更改代码:


首先,您使用的是旧版本的google图表,请尝试更新到最新版本,请参阅…谢谢,@WhiteHat。我已经更新了google图表版本。但是,我仍然看到相同的错误。还有其他建议吗?尽管您的代码丢失了旧版本,但我们实现了重定向到新版本。加载1.1使用了t即将发布的版本,与每个新发布周期中的当前版本不同。我们刚刚完成版本50的发布。选中和取消选中行时将触发
'select'
事件。取消选中时,
getSelection
将为空(
getSelection()[0]
将不返回任何内容)。在尝试访问选择元素之前,请确保
getSelection
的长度大于零。是的,@MarcoAurelioFernandezReyes。到目前为止,我们唯一的解决方案是使用49版而不是当前版本。谢谢,这让我摆脱了麻烦,直到我可以做更多的调查。谢谢@marco cahuas。这对我也很有效。我是直到不确定是什么原因导致版本50出现问题,但我正在与Daniel LaLiberte在google Groups中的google visualizations api组聊天。也为我工作,谢谢!
<script type="text/javascript">
    {literal}google.charts.load('49', {packages: ['corechart', 'geochart', 'timeline', 'gantt', 'treemap']});{/literal}
</script>