SQLの窓

2018年05月22日


表示しているサイトで Google 検索を実行するブックマークレット

site:ドメインの 検索を呼び出します

※ Google ヘルプ : ウェブ検索の精度を高める

最近は、セキュリティに厳密になったサイトが増えたので、そのページに埋め込む事ができなくなりつつあります。なので、windows.prompt で検索文字列を入力させて直接 Google を呼び出すようにしました。





このブログの記事単体ページで実行すると、以下のようになります
PowerShell site:logicalerror.seesaa.net/article
一番最後の /(スラッシュ) を取り去った状態で、その階層内の検索をする為のの文字列になります 表示しているサイトで Google 検索 ▼ リンク内コード
<a style='margin-left:60px;' href='javascript:var%20u=(document.URL).replace(/^http(s)?:\/\//g,"");var%20p=u.lastIndexOf("/");var%20u=u.substr(0,p);var%20a=prompt("検索文字列を入力してください","");if(a!=""&&a!=null){a=encodeURIComponent(a);a=a.replace("\u0025\u0032\u0030","+");a="https://www.google.co.jp/search?q="+a+"+site:"+u;window.open(a);}void(0);' onclick=" 
		alert('ブックマークバーまたは、お気に入りバーにドラッグドロップが簡単です'); 
		if (window.navigator.appName.toLowerCase().indexOf('microsoft') > -1) { 
			event.returnValue = false; 
		} 
		event.preventDefault(); 
		event.stopPropagation();
	">表示しているサイトで Google 検索</a>

▼ 実行内容を整理
// ********************************************
// 現在の URL から http:// または https:// を取り去ります
// ********************************************
va u = (document.URL).replace(/^http(s)?:\/\//g,"")

// ********************************************
// 最後の / の位置を取得します
// ********************************************
var p = u.lastIndexOf("/");

// ********************************************
// 元の文字列より、最後の / 以降を取り去ります
// ********************************************
var u = u.substr(0,p);

// ********************************************
// prompt で入力文字列を取得します
// ********************************************
var a = prompt("検索文字列を入力してください","");

// ********************************************
// 未入力時と、キャンセル時は何もしません
// ********************************************
if( a! = "" && a != null ) {
	// ********************************************
	// % エンコーディング
	// ********************************************
	a = encodeURIComponent(a);

	// ********************************************
	// encodeURIComponent では 空白は %20
	// 仕様に合わせて、空白は + 文字に変更
	// \u0025\u0032\u0030 は %20
	// ブックマークで %20 はスペースになるので
	// Unicode で指定
	// ********************************************
	a.replace("\u0025\u0032\u0030","+");

	// ********************************************
	// Google 用の検索用の URL を作成
	// ********************************************
	a = "https://www.google.co.jp/search?q="+a+"+site:"+u;

	// ********************************************
	// URL を開く
	// ********************************************
	window.open(a);
}

// ********************************************
// ※ お約束
// このブックマークレットでは必要無いですが
// ( 対話ウインドウが表示されるので )
// 通常はこれを最後に書いておくといいです
// ********************************************
void(0);



posted by lightbox at 2018-05-22 14:13 | ブックマークレット | このブログの読者になる | 更新情報をチェックする

2018年01月18日


jQuery でページを 50% に縮小するブックマークレット(2回目の実行は80%)


( Chrome と Firefox と IE で動作確認しました )
IE は、関数のデフォルト記述をできないので、scale_start の呼び出しに必ず引数が必要です。もし省略による値設定が必要な場合は、arguments.length と arguments[0] が必要になると思います

拡大する場合は、 transformOrigin を実行しておかないと、ページの中央にで拡大されてしまって左端が見えなくなります( デフォルトが 50% 50% なので )
縮小だけならばブラウザの縮小で対応できますが、ブラウザの場合元に戻すのが少し面倒なので、リロードで100% に戻せます。 1回目は外部 JavaScript の中のデフォルトとして 50% で縮小し、2回目は 80% で縮小するようにしました。 80% の指定は、ブックマークレットのコードの最後にある 0.8 を変更すると自由にカスタマイズできます。 リンクの href に埋め込まれたコード
javascript:if(!window['_bIScale']){window._bIScale={};(function(w,h,b,l,t,z,v){var wnd=document.createElement('iframe');with(wnd){id='myScale';frameBorder=b;width=w;height=h;with(style){position='absolute';left=l;top=t;zIndex=z;display=v;border='solid 1px #000';borderRadius='10px';}}document.body.appendChild(wnd);window._bIScale.wnd=wnd;var%20url;url='https://lightbox.sakura.ne.jp/toolbox/jquery_scale.js';wnd.contentWindow.document.write('<'+'script src=\''+url+'\' charset=\'utf-8\'></'+'script>');})(0,600,1,'0px','0px',1000,'');}else{document.getElementById('myScale').contentWindow.scale_start(0.8);}

整形したコード
javascript: if (!window['_bIScale']) {
    window._bIScale = {}; (function(w, h, b, l, t, z, v) {
        var wnd = document.createElement('iframe');
        with(wnd) {
            id = 'myScale';
            frameBorder = b;
            width = w;
            height = h;
            with(style) {
                position = 'absolute';
                left = l;
                top = t;
                zIndex = z;
                display = v;
                border = 'solid 1px #000';
                borderRadius = '10px';
            }
        }
        document.body.appendChild(wnd);
        window._bIScale.wnd = wnd;
        var % 20url;
        url = 'https://lightbox.sakura.ne.jp/toolbox/jquery_scale.js';
        wnd.contentWindow.document.write('&lt;' + 'script src=''+url+'' charset='utf - 8 '&gt;&lt;/' + 'script&gt;');
    })(0, 600, 1, '0px', '0px', 1000, '');
} else {
    document.getElementById('myScale').contentWindow.scale_start(0.8);
}



ブックマークレットに関する記事
関連する記事

▼ ブックマークレットから呼び出している js ファイルの内容
str="";
str+="<"+"script> \n";
str+="if ( window.addEventListener ) { \n";
str+="	window[window.location.hostname+'.loadjQuery'] = 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js'; \n";
str+="} \n";
str+="else { \n";
str+="	window[window.location.hostname+'.loadjQuery'] = 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js'; \n";
str+="} \n";
str+="document.write(\"<\"+\"script src=\\\"\" + window[window.location.hostname+'.loadjQuery'] + \"\\\"></\"+\"script>\"); \n";
str+="</"+"script> \n";
document.write(str);
function scale_start(scale) {
	$(parent.document.body).css({ transformOrigin: '50% 0' });
	$({"scale": 1}).animate(
		{"scale": scale},
		{
			duration: 1000,
			easing: "swing",
			step: function(now) {
				$(parent.document.body).css({
					transform: 'scale(' + now + ')'
				});
			}
		}
	);
}
str="";
str+="<"+"script> \n";
str+="scale_start(0.5); \n";
str+="</"+"script> \n";
document.write(str);
document.close();

※ transformOrigin を実行しておかないと、ページの中央に向かって縮小されてしまいます( デフォルトが 50% 50% なので )


posted by lightbox at 2018-01-18 14:38 | ブックマークレット | このブログの読者になる | 更新情報をチェックする

2017年12月19日


Seesaa ブログの通常エディタで記事の先頭に Twitter カード用の meta 要素を挿入するブックマークレット

▼ ブックマークレットのリンク(ブックマークバーにドロップしてください)
Twitterカード用画像 : meta 要素挿入

Twitter カード用画像のリンクを propmpt で表示したダイアログに入力して実行します。キャンセルするとなにも実行されません。

リンクのコード
<a href="javascript:var%20a=prompt('画像URL','');if(a!=null){$('#article__body').val('&lt;meta name=&#34;twitter:image&#34; content=&#34;'+a+'&#34;&gt;'+&#34;\n&#34;+$('#article__body').val());}void(0);" onclick=" 
		alert('ブックマークバーにドロップしてください'); 
		if (window.navigator.appName.toLowerCase().indexOf('microsoft') > -1) { 
			event.returnValue = false; 
		} 
		event.preventDefault(); 
		event.stopPropagation();
	">Twitterカード用画像 : meta 要素挿入</a>

Seesaa 以外のブログシステムでも、jQuery が使用されておれば、$('#article__body') の部分を変更してどこでも使えると思います。

▼ Twitter の Card validator へのリンク





タグ:twitter
posted by lightbox at 2017-12-19 20:02 | ブックマークレット | このブログの読者になる | 更新情報をチェックする

2017年12月01日


イラストAC 用 : 前日ダウンロード数を一覧表示する為のブックマークレット : jQuery プラグイン使用

2017/12/01(金) : 表示項目を追加しました。
ダウンロード(今まで),カテゴリ,コメント(非表示可)
※ 公開ページのリンク追加しました
※ 画像を後から表示できるようにしました
※ その他ちょっとした不具合も修正しました
イラストAC の管理画面で、イラスト別の『前日ダウンロード』が追加されたので、ブックマークレットを作成して、とりいそぎ『前日ダウンロード』と『タイトル』を表示して、それぞれの項目をソート・逆ソートで表示できるようにしました。 管理画面には、前日ダウンロードの多い順 という表示順の調整と、表示数を 100 件までにできるオプションがあります。前日ダウンロードされたイラストが 100 件以内の場合は、一度で全てのエントリを表示可能です。 100 件ほ超える場合は管理画面で次のページを表示して、再度実行ボタンをクリックすると追加されます。 とりあえず、Google Chrome ではテストしています。(Firefox と IE11 も OK でした) ▼ タイトルをクリックすると、ソート・逆ソートが可能です ※ 右上の search では、表示文字列による絞り込みが可能です ※ 初期表示では、画像は表示されていません。画像表示切り替えをクリックして表示させます ※ 画像のタイトルをクリックすると古い順と新しい順で表示ができます ▼ ブックマークバーへドラッグ&ドロップして下さい。 イラストAC前日ダウンロード jQuery のプラグインで一覧表を作りました。 イラストAC の管理画面で、前日ダウンロードの多い順で、100件表示にしてブックマックレットを実行すると新しいタブが開くので、実行ボタンをクリックします。100件を超える場合は、元のページへ戻ってページ送りをしてから、実行ボタンを再度クリックします。 関連する記事 jQuery プラグイン : Columns と PHP の連携と、ドキュメントには書かれていないカスタマイズ方法
posted by lightbox at 2017-12-01 19:33 | ブックマークレット | このブログの読者になる | 更新情報をチェックする

2016年04月12日


イラストAC用、一括タグ転送ブックマークレット



イラストACでついこないだ仕様変更があって、クリップボードから転送できるようになりました。なので、特に必要無いですが、実装のサンプルとしては localStorage に1セット保存しておいて 転送用ブックマークレットで繰り返し使えるツールです。( 定型部分を登録しておいて使用するという使い方もあります )

クリップボードから転送する場合は、以下の区切り文字が使えます
( タブが無いので Excel 使え無いです )
, : カンマ
; : セミコロン
  : スペース
、: 読点
 : 漢字スペース

ブックマークレットのイラストACタグ保存で使える区切り文字は以下のようになります
カンマ
空白
改行
タブ


※ 保存エリアは一箇所なので、同様のタグを繰り返し使用する場合に保存します

※ 新規(タイトルを入力する前に転送して下さい)・修正ともに使えます( 修正は全て上書き )
タブ入力を実現しているのは、jQuery-tagEditor です。入力された内容は、隠されたテキストエリア内にカンマで繋げて格納されます。

▼ オリジナルデモページ
A powerful and lightweight tag editor plugin for jQuery.

※ js と css だけで実装できます。




posted by lightbox at 2016-04-12 20:30 | ブックマークレット | このブログの読者になる | 更新情報をチェックする

2015年06月19日


選択した文字列を Google 翻訳で翻訳するブックマークレット( 選択が無い場合はページごと翻訳 )

選択した文字列を新しいウインドウに Google 翻訳を開いて翻訳完了状態にします。選択が無い場合は、同じく Google 翻訳でページ全体を翻訳します。


▼ 訳してみました
Open the Google translated the selected string to a new window and the translation is complete state. If the selection is not, it will translate the entire page in the same Google translation.
ブックマークレットに関する記事


posted by lightbox at 2015-06-19 00:55 | ブックマークレット | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり


右サイド 終わり
base 終わり