使用 innerHTML 嵌入超链接
Embedding Hyperlinks Using innerHTML?
我正在使用两个div来显示Google饼图的自定义工具提示。第一个是文本列,第二个是与文本对应的 URL 列。是否可以在文本中嵌入 URL 并在选择饼图切片时显示可单击的超链接?
以下是图表的数据源:https://docs.google.com/spreadsheets/d/1hPG22Q75rsvrjzqIKzSuaggpRIRVYTOp8JzuIxM7UBQ/edit?usp=sharing
这是饼图本身,以获取更多上下文:http://jsfiddle.net/gregpearl/u2ydom1q/3/
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {
packages: ["corechart"]
});
google.setOnLoadCallback(drawChart);
function drawChart() {
var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1hPG22Q75rsvrjzqIKzSuaggpRIRVYTOp8JzuIxM7UBQ/gviz/tq?gid=967749684');
query.setQuery('select A,B,C,D');
query.send(handleQueryResponse);
}
function handleQueryResponse(response) {
if (response.isError()) {
alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
return;
}
var data = response.getDataTable();
var view = new google.visualization.DataView(data);
view.setColumns([0, 1]);
var options = {
legend: 'none',
title: 'Countries',
chartArea: {
left: 10,
top: 20,
width: "92%",
height: "100%"
},
width: 400,
height: 400,
is3D: 'true',
enableInteractivity: 'true',
pieSliceText: 'label',
fontSize: 10,
};
var chart = new google.visualization.PieChart(
document.getElementById('chart_div'));
chart.draw(view, options);
var selectHandler = function(e) {
var firsttooltipDiv = document.getElementById('firsttooltip_div');
firsttooltipDiv.innerHTML = "";
var firstlines = data.getValue(chart.getSelection()[0].row, 2).split(''n');
for (var i = 0; i < firstlines.length; i++) {
var firstlineDiv = document.createElement('div');
firstlineDiv.textContent = firstlines[i];
firsttooltipDiv.appendChild(firstlineDiv);
}
var secondtooltipDiv = document.getElementById('secondtooltip_div');
secondtooltipDiv.innerHTML = "";
var secondlines = data.getValue(chart.getSelection()[0].row, 3).split(''n');
for (var i = 0; i < secondlines.length; i++) {
var secondlineDiv = document.createElement('div');
secondlineDiv.textContent = secondlines[i];
secondtooltipDiv.appendChild(secondlineDiv);
}
}
google.visualization.events.addListener(chart, 'select', selectHandler);
}
</script>
</head>
<body>
<table style="font-size:smaller">
<tr>
<td style="vertical-align: top; align: center">
<div id="chart_div" style="width: 450px; height: 400px"></div>
</td>
<td style="vertical-align: top; align: left; white-space=nowrap; font-weight:bold">
<div id="firsttooltip_div"></div>
</td>
<td style="vertical-align: top; align: left; white-space=nowrap">
<div id="secondtooltip_div"></div>
</td>
</tr>
</table>
</body>
</html>
我们可以
在右上角显示的链接如下
工作小提琴
处理程序函数如下:
var selectHandler = function(e) {
var row = chart.getSelection()[0].row;
var titles = data.getValue(row, 2).split(''n');
var urls = data.getValue(row, 3).split(''n');
var linksDiv = document.getElementById('firsttooltip_div');
linksDiv.innerHTML = "";
for (var i = 0; i < titles.length; i++) {
var link = document.createElement('a');
link.textContent = titles[i];
link.setAttribute("href", urls[i] || 'javascript:void(0)');
link.style.display = "block";
linksDiv.appendChild(link);
}
}
相关文章:
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 用超链接替换URLS
- 使用JavaScript从超链接加载时的默认下拉值
- Hammer.js阻止在Android Webview中点击超链接
- 将超链接添加到“;标题“;标记文本
- 文本建议的超链接
- 用Javascript按钮替换Javascript超链接
- 删除默认的ui超链接行为
- 谷歌将广告超链接映射到国家标记
- 如何在点击超链接时调用fullcalendar回调
- 单击“禁用其他超链接”
- 为Angularjs制作超链接
- 指向的超链接刚刚赢得'不起作用
- 如何将超链接添加到通过传单创建的传单多段线.Draw
- 如何禁用鼠标中键单击超链接以在新选项卡或新窗口中打开
- 如何在每个动态创建的ImageButton周围包装超链接?Visual Studio
- 将数据库中的超链接添加到查询结果
- 使用 innerHTML 嵌入超链接
- 超链接和粗体文本显示后,表单提交与innerhtml与javascript