1

我尝试制作具有响应宽度的 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>
4

2 回答 2

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(){

});
于 2016-01-14T07:54:43.900 回答
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) 并且浏览器不允许异步加载的外部脚本写入文档。

你可以做的是通过添加带有 src 的脚本标签来加载谷歌图表的脚本,就像你使用 getScript() 加载一样。

希望这可以帮助!

于 2016-01-14T10:53:20.143 回答