私は自分の会社のGoogleサイトを作成しています。私はGoogle Appsスクリプトを利用してサイトを少し追加しています。私は本当に私が作ったドロップダウンメニューにスクリプトをリンクしたいと思う。しかし、私はスクリプトをリンクする方法を把握することはできません。私はスクリプトをGoogleガジェットとして、またスタンドアロンのリンクとしてリンクする方法を知っていますが、ドロップダウンメニューから項目をクリックするとスクリプトを実行したいと思っています。GoogleサイトでGoogle Appsスクリプトをリンクする方法
答えて
セキュリティ上の理由から、GoogleではGoogleサイトにjavascriptを置くことはできません。 代わりにAppsスクリプトを提供しますが、ブラウザではなくサーバー上の孤立した世界で動作するため、非常に扱いにくく、その方法があります。
標準ページのjavascriptとは非常に異なるため、Apps Scriptでできることを考え直す必要があります。
Google Apps Scriptを使用すると、フルスクリーンでスタンドアロンスクリプトとして表示したり、サイト内のiframeに挿入したりできるユーザーインターフェイス(まだ実験的なUI APIを使用)を構築できます。つまり、サイトと重複するドロップダウンメニューはありません。スクリプトのUIを視覚化するには、静的なスペースが必要です。
あなたのサイトにスクリプトコマンドを「埋め込む」もう一つの方法があります:リンクを使用する。スクリプトを起動するリンク。独自のパラメータを使用しても、コマンドを実行できますが、UIはありません。オプション付きのメニューを作ることができ、それぞれはスクリプトを起動します。しかし、私はドロップダウンメニューについて話しているわけではありません。
Google Appsのスクリプトのユーザーインターフェイスについて
ないあなたは "スクリプトをリンク" によって何を意味するか確認してください、あなたは、コードのどこかを持っていますそれ以外は? 「リンク」では、イベントハンドラを使用して、コードを「呼び出し」することができます。 GUI ListBox ChangeイベントまたはButton ClickイベントのいずれかによってトリガされるServerHandlerを使用して関数を呼び出す方法を説明します。
Google Apps Scrips(GAS)には、GUIを実行する3つの方法があります。
- HTML Service - プレーンHTMLと同じように、HTMLフォームと入力タグを挿入できます。
- UI Service - Java(レイアウトマネージャまで)とよく似ていますが、下記を参照してください。
- GUI Builder - レイアウトをよりよく理解するために、手動で最初に行うことをおすすめします。
Googleサイトでは、ほとんどのHTMLをスクリプトなしで直接追加できます。 UIサービスとGUIビルダーはHTMLフォームタグを生成しますが、GUIコンポーネントを挿入する理由はほとんどありません。ハンドラ関数は、(彼らは時々ウィジェットを呼び出す)複数のUI要素から呼び出され、どのようにパラメータを使用することができる方法を示すためにいくつかの変更を
Here is a Drop-Down list example:限り、トラブルシューティングなど
function doGet(e) { // use doGet() & UiApp to make a canvas.
var app = UiApp.createApplication();
var doEvent = app.createServerHandler('doEvent').setId('doEvent');
var myList = app.createListBox().setId('myList').setName('myList');
myList.addItem('one'); // add items, I use single quote strings.
myList.addItem('two').addItem('three') // I know it looks weird.
// Scripts let you do this, by returning self for your convenience.
.addChangeHandler(
app.createServerHandler('doEvent')
);
app.add(myList); // Add element to GUI.
doEvent.addCallbackElement(myList); // Add to Event Handler.
app.add(app.createButton('Click Me').setId('myButton')
.addClickHandler(doEvent));
return app;
} // Simple DropDown by Jason K.
function doEvent(e) { // use split() if isMultipleSelect is true
var app = UiApp.getActiveApplication();
app.add(app.createLabel(
'List Value is ' + e.parameter.myList
+ ' from ' + e.parameter.source));
return app;
}
を、 app.add()で各要素を追加してappを返すことを忘れないでください。 doGetと各ハンドラ関数の終わりに。
ハンドラは、JavaScript onClick()やonChange()などの関数を実行しますが、ほとんどのUIはハンドラなしでは役に立ちません。 ClientHandlerはより効率的ですが、ServerHandlerはさらに多くのことを行い、ServerHandlerで始まり、より簡単なパフォーマンスのために単純な関数をClientHandlerに変換できます。あなたは、ハンドラを除外するか、コードラインの1つにまとめることができますが、実際には個人的な好みの問題ですが、複数のGUIオブジェクトに使用する場合は変数に割り当てます。異なるレイアウトマネージャを参照して、もっと見栄えの良いアプリケーションを作成したり、GUIビルダーを使用したりすることができます。また、app.createServerClickHandler()のような他の作成関数を使用していますが、これらは役に立たず、廃止されているので、他の参照は無視しますが、addChangeHandler()とaddClickHandler()自分自身。
setName()はばかげているようですが、パラメータ名を設定するだけです(私はそれらが変更されることを願っています)ので、今は要素idと同じ設定にすることをお勧めします。また、Handlerの変数名= id =イベント関数名を、それらがすべてどのように関連しているかを示すために示しました。
- 1. VBAとGoogle Appsスクリプト
- 2. Google AppsのGoogleサイトの外部サイトですか?
- 3. Fileオブジェクト(HTML)を開き、Google Appsスクリプトで解析する方法
- 4. Google Appsスクリプトのカレンダーイベントにリンク(URL)を取得する
- 5. Google Appsスクリプト:Googleドライブでファイルを削除するには
- 6. Google Appsスクリプトと外部API
- 7. Google AppsアカウントなしでGoogle Apps MarketplaceのSSOをテストする方法
- 8. ウェブページからGoogle Appsスクリプトに電話する方法
- 9. Google Appsスクリプト:スクリプトのプロパティの代替
- 10. Google Appsスクリプトのテスト方法を教えてください。
- 11. Google AppsスクリプトからGoogleスプレッドシート関数を呼び出す
- 12. Google Appsスクリプトを使用したjQuery UI
- 13. Google Appsスクリプトを使用してメール件名でスプレッドシートを作成する方法
- 14. プロビジョニングAPIなしでGoogle Appsと自分のサイトにログインする方法
- 15. google apps openIDをサイトで使用する(マーケットプレイスではない)
- 16. Google Appsスクリプト - ドキュメントとお知らせ
- 17. Google Appsスクリプトの正規表現
- 18. google appsスクリプトの範囲属性
- 19. 日付形式の問題、Google Appsスクリプト
- 20. Google AppsスクリプトのIFRAMEとNATIVEモード
- 21. スプレッドシートスクリプトからGoogle Appsスクリプトのフュージョンテーブル
- 22. google appsスクリプトUrlFetchApp.fetchの制限事項
- 23. Google Appsのスクリプト数の変数(マージ)
- 24. google appsスクリプトでファイルをドラッグアンドドロップでアップロードする
- 25. Appsスクリプトを使用してGoogleシートの「フォーマットを消去する」方法
- 26. google appsスクリプト:Googleシートの問題:「自動メールのセル値> X」
- 27. Googleのスプレッドシート 'クエリ'機能をGoogle Appsスクリプトで使用できますか?
- 28. java + google web toolkit(google appsエンジン)
- 29. Google Appsスクリプトで日付、年、月、日を計算する
- 30. Google Appsスクリプトで2つの変数をマージする