拙作の見ているページを Bing Translator で翻訳するブックマークレットのGoogle翻訳版です。
上記のと同時に作っていたけど、Bingのに比べて最小幅が広いためスマホでは横スクロールが発生する原因となってしまっていてウザかったので投稿していなかった。
本日のFenrirデベロッパーブログ「Sleipnir Mobile for Android 2.9 をリリースしました!!好きな機能を1ステップにするカスタマイズが可能に!」見ててふとタブレットなら大丈夫なんじゃね?と思い付いた次第です。
私はタブレット持って無いので、今スマホで試してみたら問題無くなってるorz 機種が変わったからかな。T-01C(854×480ドット)→F-04E(1280×720ドット)
肝心のブックマークレットはこちら「GoogleTranslator」
ソースはこんな感じ
javascript:(function(){var d=document;var b=d.body;var o=d.createElement('script');o.setAttribute('src','//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit');o.setAttribute('type','text/javascript');b.appendChild(o);var v=b.insertBefore(d.createElement('div'),b.firstChild);v.id='google_translate_element';v.style.display='none';var p=d.createElement('script');p.text='function googleTranslateElementInit(){new google.translate.TranslateElement({pageLanguage:\"auto\",multilanguagePage:true},\"google_translate_element\");}';p.setAttribute('type','text/javascript');b.appendChild(p);}());
問題無いようであれば、Tapmarkletsに投稿しようと思う
{
// Sleipnir ウェブ検索
url: ‘http:\/\/search.fenrir-inc.com\/\?.*’,
nextLink: ’#nextPageUrl’,
insertBefore: ’#foot’,
pageElement: 'div#main>div>div’
},
BingWebsiteTranslationToolbar
// ==UserScript==
// @name Bing Website Translation Toolbar
// @namespace http://d.hatena.ne.jp/barrackdo/
// @author 破楽戸.*
// @include http://*
// @include https://*
// @type SleipnirScript
// ==/UserScript==
(function() {
var flag = false;
var lang = document.getElementsByTagName("html")[0].lang;
if(lang == "ja" || lang.length == 0) {
flag = true;
}
if(!flag) {
var d=document;
var b=d.body;
var s=d.createElement('script');
s.setAttribute('src','//labs.microsofttranslator.com/bookmarklet/default.aspx?f=js&to=ja');
s.setAttribute('type','text/javascript');
b.insertBefore(s, document.body.firstChild);
}
}());
まぁ、拙作の
Google翻訳のやつ流用しただけですが。というか、ブックマークレットを素直に移植したレベルですねw 追加点はhtmlタグに日本語が指定されているか、言語の指定自体が無い場合に発動しないくらいです。なお、翻訳したくないページは@excludeに自分で追記していくこと
SleipnirStartの人気トピックス表示モード時に実行すると[2日前][昨日][今日]の右隣りにボタンが出来る。
ボタンを押すと「ロゴとモード切替ボタン」がある段が非表示になる。同時にその分だけリスト部分の高さが広くなる。
もう一度押すと元に戻る。
ただし、Sleipnir2.9.8(+IE9)でのみ動作確認してるんで他は知らね。
あと、そのうち気が向けばSeaHorseスクリプト化する。
javascript:(function(){var%20a=document.createElement('a'),as=a.style;a.id='anc';a.className='display_true';a.target='_self';a.title='トップバーを隠す';a.innerHTML='';as.textDecoration='none';as.display='block';as.height='26px';as.color='#000';as.overflow='hidden';as.marginLeft='420px';var%20tcpc=document.getElementById('tabContHot').firstChild.firstChild.firstChild;tcpc.appendChild(a);a.href="javascript:(function(){var%20bxh=document.getElementById('BX_head').style,tchm=document.getElementById('tabContHotMain').style,h=parseInt(tchm.height.replace('px',''));var%20a=document.getElementById('anc');if(a.className=='display_true'){bxh.display='none';tchm.height=h+57+'px';a.className='display_false';}else{bxh.display='block';tchm.height=h-57+'px';a.className='display_true';}})();";})();
そのドメインでのlocalStorage一覧
javascript:(function(){var%20key="";for(var%20i=0;localStorage.length>i;i++){key+=localStorage.getItem(localStorage.key(i))+"\n";}alert(key);})();
そのドメインのlocalStorage消去
javascript:(function(){localStorage.clear()})();
Twitterホームのツイート欄の文字列をlocalStorageに保存
javascript:(function(){var%20ta=document.getElementsByTagName("textarea");for(var%20i=0;ta.length>i;i++){if(ta[i].className="twitter-anywhere-tweet-box-editor"){localStorage.setItem("tatbe",ta[i].innerText);}}})();
上のブックマークレットで保存した文字列をツイート欄にコピー
javascript:(function(){var%20ta=document.getElementsByTagName("textarea");for(var%20i=0;ta.length>i;i++){if(ta[i].className="twitter-anywhere-tweet-box-editor"){ta[i].innerText=localStorage.getItem("tatbe");}}})();
SwitchAddressbar_Searchbar
(function(){
var pnir = sleipnir.api;
if(pnir.CtrlDown) {
pnir.ExecuteAction("ShowToolBar_ShowSearchBar(1)");
pnir.ExecuteAction("ShowToolBar_ShowAddressBar(0)");
pnir.ExecuteAction("SetFocusSearchBar");
}else {
pnir.ExecuteAction("ShowToolBar_ShowAddressBar(1)");
pnir.ExecuteAction("ShowToolBar_ShowSearchBar(0)");
pnir.ExecuteAction("SetFocusAddressBar");
}
})();
/*
ツールバーの表示状態の情報の取得方法が分からなかったので、[Ctrl]キーを押してるかどうかで分岐させてみた。
個人的にマウスの第4ボタンに[Ctrl]、第5ボタンに[Shift]を登録してあるので。
フォーカスも当てるようにしてあるが、その辺は無い方がいい気がしないでもない。
“ShowToolBar_~"系のアクションに引数付けなければトグルになるので、フォーカスを削り、あらかじめ一方を非表示にしてれば分岐自体必要に無いように見えるかもしれないが、表示/非表示を実行する順番の関係で一方で画面がちらつくので気に入らなかったのだ。
*/
CopyTweetTemplete
(function(){
clipboardData.setData("Text", document.title+" "+document.URL);
Status = 'クリップボードにコピーされました';
})();
SwitchTitleAndUriAtAddressBar
(function(){
var pnir = sleipnir.api;
if(pnir.AddressBarString == pnir.URL) {
pnir.AddressBarString = document.title;
}else {
pnir.AddressBarString = pnir.URL;
}
})();