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>