mixi向けのChrome extentionつくったよー

■Tidy Mixi
https://chrome.google.com/extensions/detail/edgokddijpmdmldjagbdmemjljihmecp?hl=ja

いやーjs面白いですね。
まあjsというかjQueryだけども!もやは素のjsなんていじりたくないでござる。


とりあえずchromeのextentionを作るときに、オプション関連で詰まったところをメモるし。

オプションを作るときにlocalStorageにjson形式でデータを保持するんだけど、ここでちょっと詰まった。
こんな感じに書けば、オプションをリセット/セーブできる。ちょっといらないものもついてますが。
・background.html

<html>
<script>

localStorage['defaultOptions'] = JSON.stringify({
	'option1': true,
	'option2': true
});

if (localStorage['options'] == null || undefined || '')
{
	localStorage['options'] = localStorage['defaultOptions'];
}	

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
	if (request.reqtype == 'options')
	{
		sendResponse({'options': JSON.parse(localStorage['options'])});
	}
});
</script>
</html>

・options.html

<script>
	var defaultOptions = JSON.parse(localStorage['defaultOptions']);
	var options = JSON.parse(localStorage['options']);
	$(document).ready(function() {
		$('#option1').attr('checked', options.remove_ad);
		$('#option1').attr('checked', options.reply);
		$('#resetButton').button({
			icons: {primary: 'ui-icon-arrowreturnthick-1-w'},
			label: 'Reset'
		}).click(function() {
			$('#resetNotification').fadeIn('slow', function() {
				localStorage['options'] = JSON.stringify(defaultOptions);
				location.reload();
			});
		});
		
		$('#submitButton').button({
			icons: {primary: 'ui-icon-disk'},
			label: 'Save'
		}).click(function() {
			localStorage['options'] = JSON.stringify({
				'option1': $('#option1').attr('checked'),
				'option2': $('#option2').attr('checked')
			});
			$('#saveNotification').fadeIn('slow', function(){$('#saveNotification').fadeOut('slow')});
		});
	});
</script>