2017-06-20 7 views
1

Googleスプレッドシート用のアプリでは、localStorageの一部のパラメータを1つの関数で保存します。そして、別の関数では、それらを取得する必要があります。もちろん、モードレスダイアログやサイドバーを作成することができます.HTMLコードとjsがありますが、この2番目の関数は現在のシートのみをリフレッシュするので、UIは必要ありません。また、私は知っている、そのサーバー側はlocalStorageへのアクセス権を持っていません。私はlocalStorageからデータを取得する(Googleスクリプト)

(それを行う方法を、APIで答えを見つけられませんでした

<script type="text/javascript"> 
    google.script.run.refreshCurrentSheet(localStorage.getItem('var')); 
</script> 

server.gs

function menuItemClicked() 
{ 
    // when we click on item in addon menu, this called 
    // and load 'client.html' 
} 

function refreshCurrentSheet(params) 
{ 
    // called by 'client.html' 
    // do something else with params... 
} 

client.htmlここ は私の抽象コードです

質問: UIを表示せずにhtmlを読み込み、jを実行するにはどうすればよいですか?

P.S.これらのパラメータをサーバーサイドでキャッシュに保存することは、クライアントで頻繁に使用して変更するため、解決策ではありません。

+0

https://developers.google.com/apps-script/reference/cache/

より上

もっとありますすべて、なぜプロパティサービスを使用してデータを保持しないのですか?おそらく私はあなたの質問を誤解しました –

+0

私はGoogle Apps ScriptがJavascript 1.6に基づいていると信じています。それはlocalstorageにアクセスできるので、私の推測はGoogle Apps Scriptと同じです。もし誰かがうまくいけば私を訂正しないでしょう。 [参考文献](https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage)です。しかし、それでも私がPropertyServiceを使用することに不利益を感じていない場合でも、google.script.runを使って任意のスクリプトにアクセスできます。 – Cooper

+0

localStorageはブラウザのウィンドウオブジェクトに属します。 GASはJSをベースにしていますが、Googleサーバー上の異なる環境で動作します。つまり、グローバルオブジェクトが異なります。 –

答えて

1

プロパティサービスまたはキャッシュサービスのいずれかを使用できます。両方とも、キー値のペア(文字列型のみ)を格納できるlocalStorage機能を提供します。あなたが関数呼び出しの間でデータを永続化したい場合は、キャッシュは、おそらく最良の選択肢キャッシュサービス あなたがでUIを必要としない場合は、プロパティサービス https://developers.google.com/apps-script/reference/properties/