簡體   English   中英

在src-attribute中使用可變參數加載javascript

[英]loading javascript with variable parameter in src-attribute

我嘗試制作具有響應寬度的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>

您只是在創建<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,+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()進行加載一樣)來加載Google圖表的腳本。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM