SQLの窓

2019年01月05日


Seesaa ブログの『カテゴリ』をソートするブックマークレット

▼ ブックマークバーにドラッグ&ドロップして登録して下さい
Seesaaカテゴリソート

iframe をページ内に作成して、その中で JavaScript を読み込んで、parent を操作するという方法です。



以下が読み込まれた JavaScript です( https://winofsql.jp/seesaa_cat_sort.js )。
var doc = parent.document;
var colTable = doc.getElementsByTagName("TABLE");
var len = colTable.length;
var objTable,colInput,colINum
for( var i = 0; i < len; i++ ) {

	objTable = colTable[i];

	if ( objTable.className == "list-table" ) {
		colInput = objTable.getElementsByTagName("A");
		colINum = objTable.getElementsByTagName("INPUT");
	}

}

len = colInput.length;
len = len / 2;
var cname1 = Array();
var cname2 = Array();
for( var i = 0; i < len; i++ ) {
	cname1.push((colInput[i*2].firstChild.nodeValue).toUpperCase());
	cname2.push((colInput[i*2].firstChild.nodeValue).toUpperCase());
}

cname2.sort();

len = cname2.length;
var base_i;
for( var i = 0; i < len; i++ ) {
	base_i = cname1.indexOf(cname2[i]);
	colINum[base_i].value = (i*10)+100;
}

一度登録したら二度目は登録済のものを使うようにコードを書いているので、解っていれば無駄なコードが殆どです。必要なのは、iframe を作成してその中にコードを document.write しているところです。
<a href='javascript:if(window[window.location.hostname+".loadSeesaaCatSort"]!==true){window[window.location.hostname+".loadSeesaaCatSort"]=true;(function(){var%20wnd=document.createElement("iframe");with%20(wnd){with%20(style){display="none";}}document.body.appendChild(wnd);wnd.contentWindow.document.write("<"+"script src=\"https://winofsql.jp/seesaa_cat_sort.js\"></"+"script>");wnd.contentWindow.document.close();})();}void(0);'>Seesaaカテゴリソート</a>
▼ 整形した元の状態
if ( window[window.location.hostname+".loadSeesaaCatSort"] !== true ) {
	window[window.location.hostname+".loadSeesaaCatSort"] = true;
	(function() {
		var wnd = document.createElement("iframe");
		with (wnd){
			with (style){
				display = "none";
			}
		}
		document.body.appendChild(wnd);
		wnd.contentWindow.document.write("<"+"script src=\"http://winofsql.jp/seesaa_cat_sort.js\"></"+"script>");
		wnd.contentWindow.document.close();
	})();
}

関連する記事

Seesaa(またはさくらのブログ) の『コメント・公開設定・広告の表示・カテゴリ』を一括変更するブックマークレット




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

Google Chrome でイラストAC のタグをコピー可能にするブックマークレット

イラストAC の詳細ページにはタグの一覧がありますが、ここは css の user-select が none になっているので選択できません。この user-select を all にすると、右クリックだけで全て選択されてコピーのメニューが使用可能です。

ブックマークレットが無くても、F12 のデペロッパーツールで該当部分の css を 変更すれば同じ事です。




javascript:document.getElementsByClassName('image-tags')[0].style.userSelect='all';void(0)




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

選択した文字列を Google 翻訳で翻訳するブックマークレット( 選択が無い場合はページごと翻訳 ) / 3年半でだいぶ結果が変わってます

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


▼ 冒頭の文章を選択して訳してみました( 2015-06-19 )
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.
▼ 冒頭の文章を3年半ぶりに選択して訳してみました( 2019-01-05 )
Open the Google Translate into the new window and place the selected character string in the translation completion state. If there is no choice, we also translate the whole page with Google Translate.
ブックマークレットに関する記事




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

2018年12月28日


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

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

※ Google ヘルプ : ウェブ検索の精度を高める( この中の『 特定のサイトを検索する』 )

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

※ 旧式の ページに IFRAME を埋め込むバージョンはこちらから





このブログの記事単体ページで実行すると、以下のようになります
PowerShell site:logicalerror.seesaa.net/article
一番最後の /(スラッシュ) を取り去った状態で、その階層内の検索をする為のの文字列になります ドメイン内 検索 ▼ リンク内コード
<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();
	">ドメイン内 検索</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-12-28 08:23 | ブックマークレット | このブログの読者になる | 更新情報をチェックする

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

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

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

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

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


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

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

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

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

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

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり