SQLの窓

2012年02月25日


Firefox のアドオンのサンプルを使って『作成方法』を知る為の準備

1) MKEditor のインストール
( 使いなれたエディタで個別にファイルを開いても良いです )
2) about:config で、extensions.alwaysUnpack を true に設定
3) Twitter用埋め込みコードを取得する Firefox アドオン をインストール
( http://webcraft.seesaa.net/article/249055084.html )
4) Firefox のプロファイルを開くスクリプトをダウンロード

スクリプトの実行

1) フォルダが一つあるフォルダが開くのでその中に入ります
2) extensions フォルダの中に移動します
3) sk1@winofsql.jp フォルダの中に移動します
4) _SK1@WINOFSQL.JP.mkp を MKEditor で開きます



install.rdf の内容
em:id
extensions.alwaysUnpack が true なので展開されています
( アドオンそのものが登録されているフォルダです )
em:name
アプリケーション( アドオン )の名前です
この名前で、ソース上のいろいろな部分を(便宜的なものを含めて)
管理しています
em:version
このアプリケーション( アドオン )のバージョンです
※ 新しいバージョンにして、上書きインストールします
em:creator
英語ロケールでの作者名です
日本語作者名は、em:localized 内の em:creator で指定します
chrome.manifest

これに関する詳細は、Mozilla の Chrome Registration のページにありますが、
だいたいにおいて変更する場所を熟考する必要はありません。最も重要な事実は、
chrome://browser/content/browser.xul が示すものが、ブラウザの定義そのもので
あるという事で、これをアドレスバーに入力して表示させた上で、Firebug でブラ
ウザのコンテンツの id を知る事ができます

例えば、overlay.xul にある contentAreaContextMenu という id は、既にブラウ
ザに定義されている右クリックで表示されるメニューの id です。ユーザーは自分
のアドオンで、そこに対してオーバレイして追加の機能を実装します
<?xml version="1.0"?>

<?xml-stylesheet href="chrome://sk1/skin/overlay.css" type="text/css"?>

<!DOCTYPE overlay SYSTEM "chrome://sk1/locale/overlay.dtd">

<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	<script type="application/x-javascript" src="chrome://sk1/content/overlay.js" />
	<stringbundleset id="stringbundleset">
		<stringbundle id="sk1-bundle" src="chrome://sk1/locale/overlay.properties" />
	</stringbundleset>
	<popup id="contentAreaContextMenu">
		<menuitem id="sk1-menu"
		          class="sk1-class"
		          label="&sk1_Text.label;"
		          oncommand="sk1_obj.onMenuItemCommand(event);" />
	</popup>
</overlay>



posted by lightbox at 2012-02-25 19:56 | Firefox | このブログの読者になる | 更新情報をチェックする

2012年02月19日


maglog のバックアップファイルを MT 形式ログファイルにコンバートするスクリプト

2014/11/18

以下の情報は古い情報ですが、スクリプトは通常の VBScript です。( 最近の Google Chrome では、拡張子が .vbs のファイルをダウンロードさせると『危険扱い』されるので、.wsf に変更してあります。

maglog は昔あった、Vector のブログで、当時エクスポートの結果が独自の XML だったので、Seesaa でインポートできる形式に変換したスクリプトです。

▼ クリックすると大きく表示します




▼ 2012/02/19

スクリプトの先頭に、1ログに格納する記事数を設定可能になっています。AUTHOR と登録カテゴリも設定可能です( ブログ側のデータを設定します )

手順
1) フォルダを作成 2) maglog のバックアップファイルをフォルダ内に保存 3) このスクリプトをフォルダ内に保存 4) エクスプローラからスクリプトを実行 5) インポート用ログがフォルダ内に作成されます
コメントは許可しないようになっているので、ブログに登録してから必要ならば一括変更して下さい
<JOB>
<SCRIPT language="VBScript">

strAuthor = "night walker"
strCat = "maglog"
numSet = 10

Dim Fso,obj,strCurPath

' ファイルシステムオブジェクト
Set Fso = CreateObject( "Scripting.FileSystemObject" )

' 現在実行されているスクリプトのフルパス
strCurPath = WScript.ScriptFullName

' ファイルオブジェクトを作成
Set obj = Fso.GetFile( strCurPath )

' ファイルオブジェクトが存在するフォルダオブジェクト
Set obj = obj.ParentFolder

Set colFiles = obj.Files

For Each target In colFiles

	aData = Split( target.Name, "." )
	if UBound( aData ) = 1 then
		if UCase( aData( 1 ) ) = "XML" then
			targetFile = target.Name
			Exit For
		end if
	end if

Next

' DOM Object 作成
Set dom = Wscript.CreateObject("Msxml2.DOMDocument")

' 既存 XML 入力
dom.load( targetFile )

Set nodeList = dom.getElementsByTagName("row")

fcnt = 0
fncnt = 0

For I = 0 to nodeList.length - 1

	err_sw = 0

	if fcnt Mod numSet = 0 then
		if fcnt <> 0 then
			logObj.Write( "" & vbLf )
			logObj.Close()
		end if
		fcnt = fcnt + 1
		fncnt = fncnt + 1
		Set logObj = Fso.OpenTextFile( "convert" & Right("00000" & fncnt,5 ) & ".log", 2, True )
	else
		fcnt = fcnt + 1
	end if

	on error resume next
	Set targetNode = nodeList.item(I).getElementsByTagName("title")
	wk1 = Replace(targetNode(0).firstChild.nodeValue, "&nbsp;", "" )
	if Err.Number <> 0 then
		err_sw = 1
	end if
	on error goto 0

	on error resume next
	Set targetNode = nodeList.item(I).getElementsByTagName("summary")
	wk2 = targetNode(0).firstChild.nodeValue
	if Err.Number <> 0 then
		err_sw = 1
	end if
	on error goto 0

	on error resume next
	Set targetNode = nodeList.item(I).getElementsByTagName("contents")
	wk2c = targetNode(0).firstChild.nodeValue
	if Err.Number <> 0 then
		wk2c = ""
	end if
	on error goto 0

	on error resume next
	Set targetNode = nodeList.item(I).getElementsByTagName("relese_dtime")
	wk3 = targetNode(0).firstChild.nodeValue
	if Err.Number <> 0 then
		err_sw = 1
	end if
	on error goto 0

	if err_sw = 0 then
		logObj.Write( "AUTHOR: " & strAuthor & vbLf )
		logObj.Write( "TITLE: " & wk1 & vbLf )
		logObj.Write( "STATUS: Publish" & vbLf )
		logObj.Write( "ALLOW COMMENTS: 0" & vbLf )
		logObj.Write( "CONVERT BREAKS: 0" & vbLf )
		logObj.Write( "ALLOW PINGS: 0" & vbLf )
		logObj.Write( "PRIMARY CATEGORY:" & vbLf )
		logObj.Write( "CATEGORY: " & strCat & vbLf )
		aData = Split(wk3)
		logObj.Write( "DATE: " & Replace(Right(aData(0),5),"-","/") & "/" & Left(aData(0),4) & " " & aData(1) & vbLf )
		logObj.Write( "-----" & vbLf )
		logObj.Write( "BODY:" & vbLf )
		logObj.Write( wk2 & vbLf )
		logObj.Write( "-----" & vbLf )
		logObj.Write( "EXTENDED BODY:" & vbLf )
		if wk2c <> "" then
			logObj.Write( wk2c  & vbLf )
		else
			logObj.Write( ""  & vbLf )
		end if
		logObj.Write( "-----" & vbLf )
		logObj.Write( "EXCERPT:" & vbLf )
		logObj.Write( "" & vbLf )
		logObj.Write( "-----" & vbLf )
		logObj.Write( "KEYWORDS:" & vbLf )
		logObj.Write( "" & vbLf )
		logObj.Write( "-----" & vbLf )
		logObj.Write( "--------" & vbLf )
		
	end if

Next

logObj.Write( "" & vbLf )

logObj.Close()

</SCRIPT>
</JOB>




タグ:トラブル
posted by lightbox at 2012-02-19 20:49 | VBScript | このブログの読者になる | 更新情報をチェックする

2012年02月12日


Google Chrome の拡張機能のデベロッパーモードで拡張機能のパッケージ化時の基本的な注意事項

どうも、バージョンによって対応状況が刻々と変わるようなのですが、パッケージを
保存しているフルパス内に日本語が含まれると、パッケージ化する際に書庫が壊れる
ようです(17.0.963.46 m)。

パッケージ化されていない拡張機能のテストでは、日本語化が含まれていても問題無
く動くのですが、パッケージ化するとエラーが出ずにパーケージファイルが作成され
たにもかかわらず、インストール時にエラーが出ます。

一つ前のバージョンアップ前ではうまく行っていたので、今後改善されるとは思いま
すが、やはりパスに日本語が含まれる環境はできるだけ避けたほうがいいようです。

厳密には、ただ一つのケースなので日本語以外にも原因がある可能性はありますので、
ドライブのルートより深く無い階層で単純な英数字フォルダ内でパッケージ化する事
を考えれば良いと思います。( フォルダの権限にも注意したほうがいいかも )



タグ:トラブル
posted by lightbox at 2012-02-12 21:38 | Google Chrome | このブログの読者になる | 更新情報をチェックする

2012年02月11日


JSON オブジェクトの stringify メソッドの第3引数の使い方

JSON.stringify Function (JavaScript)

上記リンク先は Microsoft の英文ドキュメントです。IE に関しては、IE8 と IE9 の
標準モードで動作します。
Supported in the following document modes: Internet Explorer 8 standards,
Internet Explorer 9 standards. Not supported in the following document 
modes: Quirks, Internet Explorer 6 standards, Internet Explorer 7 standards.
Firefox、Google Chrome、Opera、Safari のいずれでも動作します。
<script type="text/javascript">
alert(JSON.stringify( {"type": 1, "name": "test", "obj":{"level": 2,"value": 1},"arr": [1,2,3]},null,4));
</script>
コードのテスト

■ 第3引数は省略されると、スペース無しで文字列が作成されます
■ 第3引数が数字の場合は、その数のスペースでインデントされて整形されます
■ 第3引数に何か文字列が入っている場合は、その文字列でインデントされます
(その際、"\t" 等が適当です)
■ 第3引数が文字列の場合、最初の10文字が使用されます



タグ:JSON
posted by lightbox at 2012-02-11 20:25 | JavaScript オブジェクト | このブログの読者になる | 更新情報をチェックする

2012年02月10日


Google Chrome の 『実用クイック検索』

1) CTRL+E または CTRL+K
2) ? の後に検索文字列を入力
3) ALTキーを押しながら ENTER

で、新しいタブを開いて既定の検索エンジンを使用して検索を行います。


その他のショートカット

● Alt+F または Alt+E で、レンチアイコンのメニューを開きます
● CTRL+0 で拡大・縮小を元に戻します
● SHIFT キーを押しながらマウスホイールを動かすと水平スクロールします
● CTRL+SHIFT+B でブックマークバーの表示・非表示
● F12 でデベロッパーツールを開く(または閉じる)
● ALT を押しながらリンクをクリックするとダウンロード


★ 拡張機能のページは、ALT+E でいったんキーから指を離して L E ENTER とタイプします


posted by lightbox at 2012-02-10 20:33 | Google Chrome | このブログの読者になる | 更新情報をチェックする

2012年02月06日


ブラウザ別『ソース』の表示

IE

IE では、右クリックからソースの表示をするのが通常ですが、それはカーソルのある部分がフレームの場合、フレームのソースを表示してくれるからです。トップウインドウのソースが必要な場合は、CTRL+U をタイプするといいと思います。

IE9 以降では、ソースを表示するビュアーを F12 で表示する『開発者ツール』のファイルメニューから設定する事ができます。それより前でも、レジストリに登録されるので、レジストリを直接変更する事で使いなれたエディタで見る事ができまます

※ IE11 から、開発者ツールでソース表示のビュアーを変更できません

IE11のソースエディタの変更

IE ソースエディタのレジストリを開くスクリプト
( 対象エントリが無い場合は開きません )


CTRL + U で表示されるブラウザ

IE11 と Google Chrome と Firefox と Opera がこのショートカットキーを使っています。Safariは何故か、CTRL+ALT+U です。IE は直接でき無く、いったんメニューのショートカットキーを使ってからメニューの中のショートカットキーを使います


外部ビュアーを利用できるブラウザ

IE と、Firefox と、Opera が利用できますが、通常の設定で可能なのは Opera のみです。IE は、IE8 以降で開発者ツールから設定できますが、それより前はレジストリを直接設定する必要がありました(IE11 以降で再度レジストリを変更するようになりました)。Firefox は、about:config から、view_source.editor.externalview_source.editor.path を設定します。( アドオン等で設定する事も可能です )

※ Opera の設定場所


Configuration Mania :: Add-ons for Firefox



Chrome のビュアーは拡張仕様?

F12のデベロッパーツールでビュアーそのものを見る事ができますが、普通に TABLE 要素で作られていました。





posted by lightbox at 2012-02-06 12:28 | WEBブラウザ | このブログの読者になる | 更新情報をチェックする

2012年02月04日


Google Chrome の alert だけが CTRL+C で内容を取り出せます( 良くできてる )



Firefox と Opera と Safari は何も起きないですが、Chrome は表示された文字列だけをクリップボードへコピーします。Firefox と Opera は 文字部分を選択すれば、コピーできます。IE は、余計なものも一杯コピーします。

▼ IE のコピー結果( 点線もコピー結果 )
---------------------------
Web ページからのメッセージ
---------------------------
日本語表示
---------------------------
OK   
---------------------------

通常、テキストエリアを使ってクリックして選択状態にしてコピーさせる事が多いと思いますが、一連のオペレーションの一部として使う場合に alert を使う効果が大きい場合があると思います

IE は Windows API の仕様ですから、alert 以外の場合( 特にエラー詳細 )を取り出す場合に昔から用いられています。



posted by lightbox at 2012-02-04 23:36 | Google Chrome | このブログの読者になる | 更新情報をチェックする

jQuery のイベント名によるイベント登録の中身

以下のように、each メソッドで登録されています。引数が無い場合は trigger 処理となり、イベント登録は、on メソッドで行われているので return arguments.length > 0 の部分でその判断をしています。

※ bind でも on メソッドで登録されています。
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
	"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {

	// Handle event binding
	jQuery.fn[ name ] = function( data, fn ) {
		if ( fn == null ) {
			fn = data;
			data = null;
		}

		return arguments.length > 0 ?
			this.on( name, null, data, fn ) :
			this.trigger( name );
	};

	if ( jQuery.attrFn ) {
		jQuery.attrFn[ name ] = true;
	}

	if ( rkeyEvent.test( name ) ) {
		jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
	}

	if ( rmouseEvent.test( name ) ) {
		jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
	}
});

※ jquery-1.7.1.js



タグ:jquery
posted by lightbox at 2012-02-04 02:30 | jQuery メソッド | このブログの読者になる | 更新情報をチェックする

2012年02月03日


jQuery の each メソッドの『秘密の使い方』

本家のドキュメントにその記述が無かったんですが、ソースを読むと明らかに二通り
の使い方がありました。一つは、ドキュメントの通りに each の引数はコールバック
のみを渡して、第一引数はインデックス番号で、第二引数は this と同じものが使え
るというものです。

しかし、もうひとつでは each の引数にはコールバックともうひとつ配列を渡せるよ
うになっていて、その場合はそれぞれのコールバックの引数には配列の値が一つ一つ
渡されるというものです
<a href="#" target="_blank">001</a>
<a class="test" href="http://winofsql.jp" target="_blank">001</a>
<a class="test" href="http://toolbox.winofsql.jp" target="_blank">002</a>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.7.1");
</script>
<script type="text/javascript">
// ドキュメントに無い使い方
$(".test").each(function(i,me){
	console.log(i+" "+me.href+" "+this.href);
},['これは',{href:"秘密の使い方"}]);

// 普通の使い方
$(".test").each(function(i,me){
	console.log(i+" "+me.href+" "+this.href);
});
</script>

以下はその該当部分( jquery-1.7.1.js )
※ callback.apply で呼び出しています

// args is for internal usage only
each: function( object, callback, args ) {
	var name, i = 0,
		length = object.length,
		isObj = length === undefined || jQuery.isFunction( object );

	if ( args ) {
		if ( isObj ) {
			for ( name in object ) {
				if ( callback.apply( object[ name ], args ) === false ) {
					break;
				}
			}
		} else {
			for ( ; i < length; ) {
				if ( callback.apply( object[ i++ ], args ) === false ) {
					break;
				}
			}
		}

	// A special, fast, case for the most common use of each
	} else {
		if ( isObj ) {
			for ( name in object ) {
				if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
					break;
				}
			}
		} else {
			for ( ; i < length; ) {
				if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
					break;
				}
			}
		}
	}

	return object;
},

この中では、each に渡されるオブジェクトが length の無い通常オブジェクト
も想定されているのですが、$( {} ) では動作しませんでした。もし、その場合
で動くのであれば、インデックスのかわりにプロパティ名が渡る事になっていま
す。
( ※ 動作しなかったと言うのは、配列扱いされてしまっていたという事です )


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

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

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

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

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


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

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

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

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

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


Windows
container 終わり

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

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり