script google app

google spreadsheetをデータの保存に利用してこれからメニューバーを作る

./img/mo.png
public on the web にして名前を付け保存。
一列目は表示名、二列目はURL

このスプレッドシートのURLは

https://spreadsheets.google.com/ccc?key=0Ahx8FrCtx3TOdHlvOHdibUhHdkdkNnc2VXlGLXRtQ2c&hl=en

(public on the webリンクをクリックするとsharing settingという窓が出て選択できる)

このようなjavascriptを作る function名はmainmenu()とした

		function mainmenu(){
			var query = new google.visualization.Query(
			"https://spreadsheets.google.com/ccc?key=0Ahx8FrCtx3TOdHlvOHdibUhHdkdkNnc2VXlGLXRtQ2c&hl=en");
			query.setQuery("select A,B");
			query.send(handleQueryResponsemainmenu);
		}
	
		function handleQueryResponsemainmenu(response) {
			var data = response.getDataTable();
			for (var row = 1 ; row < data.getNumberOfRows() ; row++) { //ここでは1行目はのぞく
				var li = $("<li />");
				var href = $("<a />");
				href.text(data.getFormattedValue(row, 0));
				var attr = (data.getFormattedValue(row, 1)=='')?data.getFormattedValue(row, 0):data.getFormattedValue(row, 1);
				href.attr("href",attr);
				li.append(href);
				$("ul#mainmenu").append(li);
			}
		}

このページの列1,2を取得して、最上段の行は抜かし、それ以降の行を反復して<li><a></a></li>を作成、最後にページの<ul id="mainmenu"></ul>内にdomで書き加える。以上。このコードは外部に置いて<head>で読み込んでもいいし、中にいれてもいい

なお、

var attr = (data.getFormattedValue(row, 1)=='')?data.getFormattedValue(row, 0):data.getFormattedValue(row, 1);

で仮に右列の値がなかった場合は左列の表示名をそのままurlとするようにしている


一方でhtml側ではgoogleのjs apiをロードして実行させ、そのmainmenu() function処理を行わせる

<head>
		<title>algae catalog</title>
		<!--[if lt IE 9]>
		<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
		<![endif]-->
...
...
		<script type="text/javascript" src="./js/jquery-1.4.2.js"></script>
...
...
		<script type="text/javascript" src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
			google.load("visualization", "1");
			google.setOnLoadCallback(init);
			function init() {
				mainmenu();		
			}
		</script>
	</head>
<body>

	<header>
			<nav>
				<ul id="mainmenu">
				</ul>
			</nav>
	</header>

* jqueryが必要なのかどうかは分からないが一応入れている

./img/mo2.png
するとこのようにメニューバーに値をダウンロードしてきて表示してくれる

事例:

このファイル 右クリックしてソースを見てみてください
js indexmainmenu.js
データ https://spreadsheets.google.com/ccc?key=0Ahx8FrCtx3TOdDBuMnRJRmtyRDludGNIWVU1TEZCSWc&hl=en#gid=0

script google app comment form

土, 4 30, '11

Leave your comments

    inserted by FC2 system