我能想到的唯一方法是将一些自定义 JavaScript 注入到由调用创建的 HTML 中gvisTable()
。您将无法像您提供的示例那样使用 EventListener - 原因是当前实现的 eventListener 仅在单击表时才会执行。您需要在此之前执行您的代码。那么,插入它的最佳位置似乎是在jsDrawChart
返回的 HTML 部分中。这是图表对象的 JS 表示被组装的地方。绘制图表后draw
,您可以对该对象进行其他调用。
快速查看表格对象的Google Charts 文档表明setSelection()
,假设您使用正确的参数格式,您可以在 Javascript 中使用一个不错的函数。
我做了以下事情:
mytab <- (gvisTable(a,chartid="myTable"))
#you just want to add the following line of JS before the close bracket in the jsDrawChart function.
# chart.setSelection([{'row':2, 'column':null}]);
#in my case, that turned out to be the following:
mytab$html$chart["jsDrawChart"] <- "\n// jsDrawChart\nfunction drawChartmyTable() {\n var data = gvisDatamyTable();\n var options = {};\noptions[\"allowHtml\"] = true;\n\n var chart = new google.visualization.Table(\n document.getElementById('myTable')\n );\n chart.draw(data,options);\n chart.setSelection([{'row':2, 'column':null}]); \n\n}\n \n"
您当然可以通过使用 RegEx 在右括号之前自动插入额外的 JS 行或修改 GoogleVis 函数的源代码来使其更加健壮。
但是一旦我添加了那行 JS,我现在就可以运行plot(mytab)
并让它自动选择我想要的行(请记住它是 0 索引的)。