2017-12-30 44 views
0

このStackOverflowの質問How to pass url parameter value into string filter input in Google visualization を使用してURLパラメータをGoogleダッシュボードに渡そうとしています.Mogsdadのexcellent writeupを使用して作成しました。URLパラメータを渡すGoogle AppsスクリプトGoogleダッシュボード

ダッシュボードは機能しますが、パラメータを渡すことはできません。 ?state=Texasをコンテンツフィルタとして使用するURLから削除します。すぐに私は私のJavaScript.htmlファイル内の関数を呼び出すように、ダッシュボードを描画するのに失敗します。

var stateFilter = stateurl('state'); //if I use this ANYWHERE in the html file, the dashboard fails 

    function stateurl(variable){ //in tests this works fine on its own 
    var url = ScriptApp.getService().getUrl(); 
    var vars = url.split("&"); 
    for (var i=0;i<vars.length;i++) { 
     var pair = vars[i].split("="); 
     if(pair[0] == variable){ 
     return pair[1]; 
     }else return 'Texas' 
    } 
    } 

これを行うの目標は、簡単にリフレッシュ/最も一般的に使用されるフィルタへのショートカットを作成するために私の同僚を有効にすることです。

+0

私がGoogle AppsスクリプトAPIとその慣れていないんだけど、あなたは確認する必要性がある場合ScriptApp.getService( 'によって返される値).getUrl() 'は'? '文字を含みます。もしそうなら、あなたは** if **のステートメントで条件を調べることをお勧めします。 – camelCaseD

答えて

0

さて、私はHTMLを使って回避策を見つけました(これはJavaScriptよりもさらに悪いです)ので、おそらく最高ではありませんが、動作します。

function doGet(e) { 

    var template = HtmlService.createTemplateFromFile('Index'); 

    var city = e.parameter.city; //grab city parameter 

    template.city = city; //build template, then proceed as usual 

    // Build and return HTML in IFRAME sandbox mode. 
    return template.evaluate() 
     .setTitle("KPIs") 
     .setSandboxMode(HtmlService.SandboxMode.IFRAME); 
} 

それから私はIndex.htmlとにこの単純なdiv要素を追加します(なしと私のために私は、ディスプレイにCSSスタイルを設定します。)のdoGet機能では、私はこれらの2行を(状態対都市への切り替え)を追加しました

<div id="cityname"><?=city?></div> 

はその後、私のダッシュボード機能では、私はdiv要素を参照してください。

var city = document.getElementById('cityname').innerHTML; 
if (city=="undefined"){ 
var city = "Austin";} 

これは私のためにそれを答えるが、他はもちろん、より良いJSの修正を有することができます。私は他の可能なフィルタを追加するためにこの戦略を使用しました。他のパラメータのためにdoGetの2つの行を複製するだけです。より多くの場合

、以下を参照してください

Pass URL parameter into Web App script

How to pass url parameter value into string filter input in Google visualization

関連する問題