javascript - 谷歌图表创建相对 URL
问题描述
我正在使用 Google Charts,我注意到图表的 URL 是一个相对 URL。示例: //chart.googleapis.com 而不是https://chart.googleapis.com
如果我使用图表代码创建单个 HTML 文件,则 URL 很好(使用 https),但在 PHP 应用程序提供的文件中,URL 是相对的。
在正常情况下,这不是问题,但我将图表导出为 PDF,如果没有完整的 url,图表不会在 PDF 上呈现。有没有人遇到同样的问题?
工作示例:
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['imagesparkline']});
</script>
<div id="chart_div"></div>
<script>
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Revenue', 'Licenses'],
[435, 132],
[438, 131],
[512, 137],
[460, 142],
[491, 140],
[487, 139],
[552, 147],
[511, 146],
[505, 151],
[509, 149]
]);
var chart = new google.visualization.ImageSparkLine(document.getElementById('chart_div'));
chart.draw(data, {width: 120, height: 40, showAxisLines: false, showValueLabels: false, labelPosition: 'left'});
}
</script>
这是一个工作示例的小提琴:https ://jsfiddle.net/br6837oq/
解决方案
用绝对 URL 替换相对 URL 解决了这个问题:
$html = str_replace('src="//chart.googleapis.com', 'src="https://chart.googleapis.com', $html);
解决方案
推荐阅读
- aws-lambda - 应用自定义 FunctionName 时的 Lambda 授权方意外返回 {"message":null}
- azure-devops - 在 azure pipelines yml 中签出另一个存储库
- html - 将 Reactable 标题文本与 R 中标题容器的底部对齐
- python - 使用flask python滞后问题进行实时图像处理
- azure-devops - Azure Pipelines:为什么我的变量不使用“键:值”语法设置,而是使用“名称,值”语法设置?
- python - 我可以为模型中的所有参数创建一个过滤器,而不必在查询集中编写每个参数吗?
- python - 如何从 python 向 Arduino 发送值?
- python - XGBoost 图像分类 Bad Allocation 错误
- sql - 查找不同的组合 + 附加字段
- reactjs - 使用 mock service worker 测试 React App 时如何记录请求数?