読者です 読者をやめる 読者になる 読者になる

凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

Googleリーダーでキーボードショートカットから +1 をつける その2

JavaScript

はじめに

前回、d:id:hecomi:20111103にてGoogleリーダーで "Shift + s" キー押下で +1 するスクリプトを作ったよ! という内容の記事を書きました。しかしながらその直後くらいに、同キーで Google+ に記事を投稿する機能がネイティブで追加されました。なのでこのスクリプトも用済みかなー、と思っていたのですが、

  • ネイティブの "Shift + s" では +1 はされない
  • 最近なんか414でバグる(下図)


という状況なので、ちょびっとアップデートしました。

アップデート内容

  • キーバインドを "+" キーに変更
  • 2つにわかれていた js ファイルを1つに統合
  • "?" 押下時のヘルプに "+" キーの説明を追加

動作環境

  1. Google Chrome 17.0.932.0 dev +NinjaKit(NinjaKit - os0x.blog

ソースコード

// ==UserScript==
// @name                Keyboard Shortcut for Google Reader with G+
// @version             v1.2 (2011/11/29)
// @namespace	        hecomi
// @require             https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js
// @include		http*://www.google.*/reader/*
// @include		http*://plusone.google.com/*
// ==/UserScript==

(function(){
	if (location.href.indexOf('plusone.google.com') === -1) {
		$(window).bind('keydown', function(e) {
			if (e.keyCode == 187) {
				location.href = 'javascript:(' +
					(function(){
						var ce  = document.getElementById('current-entry');
						var ifr = ce.getElementsByTagName('iframe')[0];
						ifr.contentWindow.postMessage('TOGGLE_PLUSONE', '*');
					}).toString() + ')()';
			}
		});

		$('.keyboard-help-banner').live('DOMNodeInserted', function(e) {
			var target = $(e.target);
			if (target.attr('id') === 'keyboard-help-container') {
				$('<tr><td class="key">+:</td><td class="desc">Toggle +1</td></tr>').appendTo('.help-section:eq(7) tbody');
			}
		});
	} else {
		$(window).bind('message', function(e) {
			if (e.originalEvent.data === 'TOGGLE_PLUSONE') {
				var click    = document.createEvent("MouseEvents");
				click.initEvent("click");
				$('#button')[0].dispatchEvent(click);
			}
		});
	}
})();