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>