在src-attribute中加载带有变量参数的javascript

时间:2016-01-14 07:51:19

标签: javascript jquery google-trends

我尝试制作响应宽度的Google趋势图表。但它不会工作。它正在加载它应该是的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>

2 个答案:

答案 0 :(得分:1)

您只是在创建一个jQuery标记的<script>对象,而您并未参与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(){

});

答案 1 :(得分:0)

http://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=400&h=330 将返回一个javascript代码片段,它尝试执行document.write。您试图异步加载javascript($。getScript),并且浏览器不允许异步加载的外部脚本写入文档。

你可以做的是通过使用与使用getScript()加载相同的src添加脚本标记来加载谷歌图表的脚本。

希望这有帮助!