加载src属性中带有可变参数的javascript
loading javascript with variable parameter in src-attribute
我试图制作一个具有响应宽度的谷歌趋势图。但它不会起作用。它正在按应有的方式加载URL。当我尝试加载外部JavaScript时,我的页面上没有显示图表。有人能帮我或给我一个提示吗?
这是我的代码:
<h1>Google Trends</h1>
<script>
$(document).ready(function(){
var chartwidth = ($('.content').innerWidth());
$(function () {
$('<script>')
.attr('type', 'text/javascript')
.attr('src', '//www.google.com/trends/embed.js?hl=de&q=waffenbesitzkarte,+waffenpass,+waffenschein&geo=AT&date=today+24-m&cmpt=q&tz=Etc/GMT-1&tz=Etc/GMT-1&content=1&cid=TIMESERIES_GRAPH_0&export=5&w=' + chartwidth + '&h=330')
.replaceAll('#chartA');
});
$(function () {
$('<script>')
.attr('type', 'text/javascript')
.attr('src', '//www.google.com/trends/embed.js?hl=de&q=waffenrecht,+waffengesetz,+waffenbesitz&geo=AT&date=today+24-m&cmpt=q&tz=Etc/GMT-1&tz=Etc/GMT-1&content=1&cid=TIMESERIES_GRAPH_0&export=5&w=' + chartwidth + '&h=330')
.replaceAll('#chartB');
});
});
</script>
<div id="chartA"></div>
<div id="chartB"></div>
这是我更新的代码:
<h1>Google Trends</h1>
<script>
$(document).ready(function(){
var chartwidth = ($('.content').innerWidth());
$.getScript('//www.google.com/trends/embed.js?hl=de&q=waffenbesitzkarte,+waffenpass,+waffenschein&geo=AT&date=today+24-m&cmpt=q&tz=Etc/GMT-1&tz=Etc/GMT-1&content=1&cid=TIMESERIES_GRAPH_0&export=5&w=' + chartwidth + '&h=330', function(data){
$('#chartA').append(data);
});
$.getScript('//www.google.com/trends/embed.js?hl=de&q=waffenrecht,+waffengesetz,+waffenbesitz&geo=AT&date=today+24-m&cmpt=q&tz=Etc/GMT-1&tz=Etc/GMT-1&content=1&cid=TIMESERIES_GRAPH_0&export=5&w=' + chartwidth + '&h=330', function(data){
$('#chartB').append(data);
});
});
</script>
<div id="chartA"></div>
<div id="chartB"></div>
您只是在创建<script>
标记的jQuery
对象,而不是插入DOM。如果你想包含一个外部JS文件,并且你正在使用jQuery,那么就做
$.getScript("yourScript.js", function(){
// Callback when script is completely loaded.
});
在你的情况下,做:
$.getScript('//www.google.com/trends/embed.js?hl=de&q=waffenbesitzkarte,+waffenpass,+waffenschein&geo=AT&date=today+24-m&cmpt=q&tz=Etc/GMT-1&tz=Etc/GMT-1&content=1&cid=TIMESERIES_GRAPH_0&export=5&w=' + chartwidth + '&h=330', function(){
});
http://www.google.com/trends/embed.js?hl=de&q=waffenbesitzkarte,+waffenpass,+waffinschein&geo=AT&日期=今天+24m&cmpt=q&tz=Etc/GMT-1&tz=Etc/GMT-1&content=1&cid=TIMESERIES_GRAPH_0&导出=5&w=400&h=330将返回一个javascript代码片段,该代码片段尝试执行document.write。您正在尝试异步加载javascript($.getScript),而浏览器不允许异步加载的外部脚本写入文档。
您可以通过添加带有src的script标记来加载谷歌图表的脚本,就像使用getScript()加载一样。
希望这能有所帮助!
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- Lodash _.debounce 具有唯一参数变体的单独队列
- 当使用多个值调用时,某些 mixin 参数保持不变
- 多次定义参数时获取 URL 参数值
- 通过 Ajax 获取 PHP 变量值,变量名称作为参数
- JavaScript无法从给定的参数中获取正确的变量值
- 没有参数的jQuery outerHeight()函数返回对象而不是参数值
- 将变量值传递给锚标记中的 href 参数
- 将参数附加到URL地址在多个函数中不起作用(第二个函数不变)
- 如何在不调用函数的情况下向函数实参添加参数
- 根据已有参数值向json中添加参数
- 当不指定url参数时,设置默认url参数值
- 试图保持输入参数不变
- 如何将范围变量值作为 FormName 传递给 ng-click 参数并获取 FormName.$valid 和 For
- 在DistanceMatrixStatus中传递参数回调或设置变量值