SQLの窓

2011年03月28日


Firefox4 : ローカルPCからファイルをドラッグドロップしてファイルの中身を使用する事ができます

他にも WEB アプリケーションで使いたい機能はありますが、まず一番簡単で誰でも利用してみたいと思う機能です。特に、getAsText() はいとも簡単にデータをインポートする方法なので、localStorage とあわせて使うととても威力のあるツールを作成する事ができます。

ファイル名はパスを含みませんが、複数ファイルをドラッグドロップできるので、利用方法はいろいろ想像できます。メソッドは以前からあるようなのですが、ドラッグドロップとあわせて使う事によって幅が広がっています。

getAsDataURL() メソッドはファイルの内容が base64 にエンコードされて取得され、getAsBinary() メソッドはその名のとおり、バイナリです。まだ詳細をチェックしていませんが、当然画像で使う事になるのでしょう
<div id="dropbox" style='border:solid 1px #000000;width:100;height:30px;'></div>
<script type="text/javascript">
var dropbox;

dropbox = document.getElementById("dropbox");
dropbox.addEventListener("dragenter", function(event){
	event.stopPropagation();
	event.preventDefault();
}
, false);
dropbox.addEventListener("dragover", function(event){
	event.stopPropagation();
	event.preventDefault();
}
, false);
dropbox.addEventListener("drop", function(event){
	event.stopPropagation();
	event.preventDefault();

	var dt = event.dataTransfer;  
	var files = dt.files;

	for (var i = 0; i < files.length; i++) {
		var file = files[i];
		console.log(file.fileName);
		console.log(file.fileSize);
		console.log(file.getAsText("shift_jis"));
		console.log(file.getAsDataURL());
		console.log(file.getAsBinary());
		console.log(file.name);
		console.log(file.size);
		console.log(file.type);
	}

}
, false);
</script>

このコードは リアルタイム html ですぐテストできます。
※ Firebug を使ってお試し下さい。(Firebugを開いてから「ページ作成」してドラッグドロップ)

関連する mozilla ドキュメント

Selecting files using drag and drop





posted by lightbox at 2011-03-28 00:27 | Firefox | このブログの読者になる | 更新情報をチェックする

2011年03月26日


Firefox 4.0 のオレンジ色のアプリケーションメニューとメニューバー

Updating extensions for Firefox 4 - MDC Doc Center

英文ですがこんなふうに書かれています。
Windowsでは、メニューバーはデフォルトで非表示になっています。

代わりに、簡略化されたFirefoxのアプリケーションメニューを開く事ができます。 
このメニューは、アプリケーションの最もよく使われるメニュー機能が含まれています。

メニューバーはまだAltキーを押すことによってアクセスすることができます。
既存のアプリケーションの中にはメニューバーからしかアクセスできないものが あるので、必要に応じてこの「アプリケーションメニュー」にオーバレイする必 要がある事が示されています。 それ以外にも、そこへ到達するのにアクションが煩雑に思えるものも出て来る可 能性があるので、ここでその変更例を一つ示します。
<?xml version="1.0"?>
<!DOCTYPE window SYSTEM "chrome://confmania/locale/confmania.dtd">

<overlay id="confmania-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/javascript" src="chrome://confmania/content/browser-Overlay.js"></script>
  <commandset id="mainCommandSet">
    <command id="ConfMania:Open" oncommand="window['ConfMania'].open()"/>
  </commandset>
  <menupopup id="menu_ToolsPopup">
    <menuitem id="confmania" command="ConfMania:Open"
              label="&confmania.label;" insertafter="menu_preferences"/>
  </menupopup>
  
  <vbox id="appmenuPrimaryPane">
    <menuitem id="appmenu_confmania" command="ConfMania:Open"
              label="&confmania.label;" insertafter="appmenu_webDeveloper"/>
  </vbox>
</overlay>

これは、Configuration Mania の呼び出しをアプリケーションメニューに
追加したものですが、insertafter="appmenu_webDeveloper" が位置を示していて、
appmenu_webDeveloper は、WEB開発メニューです。他の位置にセットしたい場合は、
chrome://browser/content/browser.xul をアドレスバーに入力して開いて、
Firebug(HTMLタブ) で Firefox の基本構成を調査して対象を決めて下さい。




関連する記事

実行の入り口であるメニューの位置のカスタマイズ


posted by lightbox at 2011-03-26 20:35 | Firefox | このブログの読者になる | 更新情報をチェックする

Firefox 4.0 限定機能らしい「XPIファイルを展開しない」というオプション変更できる Configuration Mania というアドオン

Configuration Mania :: Add-ons for Firefox



Firefox が 4.0 になって、「アドオン」の格納方法が変わってました
で思った事を掘り下げて行くとこういう事でした。正式な情報は未確認ですが、これをチェックするといままで通り展開され、ものによっては展開されていたのはこのオプションを使っていたのでしょうね。

で、中を見てみると単純で about:config で確認できるオプションの
「extensions.alwaysUnpack」をチェックボックス化していただけでした。正式ドキュメントは見つける事ができませんでしたが、見たままですしそのへんは適当にどうぞ・・・という感じなのでしょうか。

about:config から変更すると、Configuration Mania のほうも変更されました。但し、既に xpi でインストール済のものは変更されずにオプション変更以降に再インストールまたはアップグレードで展開されるようです。

・・・・いや、だとするとインストール時にのみ展開するというオプションが必要になるはずだと言う事ですが、ここんところは解りません。
※ install.rdf に <em:unpack>true</em:unpack> をセットします


日本語化の為に、

Nightly Tester Tools を再インストールしました。id は、{8620c15f-30dc-4dba-a131-7c5d20cf4a29} となっていますので、その中のchrome\locale\en-US に入って、nightly.dtd を開いて "Open Profile Folder" を"プロファイルフォルダを開く" と変更して、UTF8N で保存して下さい。
※ {8620c15f-30dc-4dba-a131-7c5d20cf4a29} が固定なのかどうかは未確認

本来(正式には) locale フォルダに日本語用のフォルダやファイルを作るのですが配布目的でもなければそこまでしなくてもいいと思います。ただ、再インストールしてしまうと(含バージョンアップ)元に戻ってしまうので、変更した dtd は保存しておくいいと思います。





posted by lightbox at 2011-03-26 19:27 | Firefox | このブログの読者になる | 更新情報をチェックする

2011年03月25日


トラブル : IE9製品候補版の具体的技術的問題点を二つ。

震災の為、製品版の公開が日本では見送られていますが、Internet Explorer Platform Preview からおかしいと思っていた事がはっきりしました。


1) IE 拡張の 親 window オブジェクト

IEでは、IE 拡張という機能があり、そのコードからは、Windows の通常のアプリケーションの実行等が可能なのですが、親ウインドウオブジェクトが何故か参照できなくなっています。

参照用のコードは以下。
external.menuArguments

これが、現在表示しているページの window オブジェクトになるはずなのですが、アクセス不可でエラーになります。通常、ここから location オブジェクトを参照して URL を取得していたのですが、取得できません。

単独のオブジェクト( 今カーソルの下にある ) は参照できるので、そのプロパティの document オブジェクトの URL プロパティで URL そのものは代替え可能ですが、とうてい完全な解決策ではありません。


2) OBJECT 要素の中の embed 要素の記述 これは、Flash でよく行われている記述ですが、IE9 では、OBJECT の id と embed のname が同じ場合( もともと IE は name 属性から id 属性作成 ) window["idの文字列"] とするとコレクションになってしまい、Flash オブジェ クトの参照ではなくなってしまいます。この場合の対処方法は少し記述を変えて、 window["idの文字列"][0] とすれば同じ参照になります。 これは、「互換表示」で元へ戻ります。
タグ:トラブル IE IE9
posted by lightbox at 2011-03-25 14:55 | IE | このブログの読者になる | 更新情報をチェックする

2011年03月18日


VBS : 指定した HOST 名を現在の IP アドレスで HOSTS ファイルに登録するスクリプト

最初の PC 名は処理に必要ありませんが、確認表示の為に取得しています。「テスト用コンピュータ名」に指定する HOST 名を設定しますが、想定しているのは、Windows7 の XPモードで環境が移動した際に、その環境で取得した(DHCP) IPアドレスに対して、「固定」の HOST 名で名前解決しようというものです。

■ IPアドレスの取得
■ HOSTS があるディレクトリの取得
■ HOSTS ファイルを開いてすべてのテキストを取得
■ 新規なのか、既に以前設定されていたかをチェック
■ 書き込み

というプロセスで実行されます。作業する前には、HOSTS ファイルのオリジナルをバックアップしておくといいと思います。
' 現在のコンピューター名の取得
Dim ComputerName
Set objWMIService = GetObject("winmgmts:\.\root\cimv2")  
Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem")  

For Each objItem in colItems
	ComputerName = objItem.Name
	Exit For
Next 

Wscript.Echo ComputerName


' テスト用コンピュータ名
Dim TestComputerName

TestComputerName = "layla"


' IPアドレスの取得
Dim IPAddress

Set obj = GetObject("winmgmts:\.\root\cimv2")
Set objTargets = obj.ExecQuery( _
	"select * from Win32_NetworkAdapterConfiguration " & _
	"where IPEnabled = True" _
	)
For Each objTarget in objTargets
	For Each objAddress in objTarget.IPAddress
		IPAddress = objAddress & ""
		Exit For
	Next
Next

Wscript.Echo IPAddress


' HOSTS があるディレクトリの取得
Set obj = CreateObject("Shell.Application")
Set objFolder = obj.NameSpace( &h25 )


' HOSTS ファイルを開いてすべてのテキストを取得
FilePath = objFolder.Self.Path&"\drivers\etc\hosts"
Set Fso = CreateObject( "Scripting.FileSystemObject" )
Set objHandle = Fso.OpenTextFile( FilePath, 1 )
strText = objHandle.ReadAll
aData = Split( strText, vbCrLf )
objHandle.Close


' 新規なのか、既に以前設定されていたかをチェック
bExist = False
For I = 0 to Ubound( aData )-1
	aWork = Split( aData(I), " " )
	if Ubound(aWork) >= 0 then
		if Trim(aWork(0)) <> "" then
			if Ubound( aWork ) = 1 then
				strServer = Trim(aWork(1))
				if Ucase(TestComputerName) = Ucase(strServer) then
					bExist = True
					aData(I) = IPAddress & " " & TestComputerName
					Exit For
				end if
			end if
		end if
	end if
Next

' 新規
if not bExist then
	strText = strText & vbCrLf & IPAddress & " " & TestComputerName & vbCrLf
else
' 既に以前設定されている
	strText = Join( aData, vbCrLf )
end if

' 書き込み
Set objHandle = Fso.OpenTextFile( FilePath, 2, True )
objHandle.Write strText
objHandle.Close





posted by lightbox at 2011-03-18 16:32 | VBS + WMI | このブログの読者になる | 更新情報をチェックする

XP用、エクスプローラを右クリックしてそのフォルダで「コマンドプロント」を開くメニューを追加する .reg ファイル

Windows7 では、内部の記述は同様ですが、最初からSHIFT キーを押しながらポップアップメニューを表示すると、「コマンドウインドウをここで開く」というメニューが表示されます

▼ Windows7 での普通の右クリック


▼ Windows7 で、SHIFTキーを押しながらの右クリック




▼ Windows7 のオリジナル内容
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="@shell32.dll,-8506"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""

※ 以下を Unicode で CRLF で保存しても使用できます。
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="コマンドプロンプト(&P)"

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /k \"cd %L\""






posted by lightbox at 2011-03-18 15:51 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

2011年03月11日


これがいい方法かどうかは解りませんが、直観的で解りやすい UL 要素内の LI 間の改行調整

本当は他に方法あるのでしょうが、ブログのリンクでしか使わないので
一般的にも簡単なほうがいいと思ったので。

テストは、リアルタイムHTML で実行してみて下さい。
  • 1行目
  • 2行目
  • 3行目
  • 1行目
  • 2行目
  • 3行目
  • 1行目

  • 2行目

  • 3行目

  • 1行目

  • 2行目

  • 3行目

<ul>
<li>1行目</li>
<li>2行目</li>
<li>3行目</li>
</ul>

<ul>
<li>1行目<br /></li>
<li>2行目<br /></li>
<li>3行目<br /></li>
</ul>

<ul>
<li>1行目<br /><br /></li>
<li>2行目<br /><br /></li>
<li>3行目<br /><br /></li>
</ul>

<ul>
<li style='line-height:0px'>1行目<br /><br style='line-height:25px'/></li>
<li style='line-height:0px'>2行目<br /><br style='line-height:25px'/></li>
<li style='line-height:0px'>3行目<br /><br style='line-height:25px'/></li>
</ul>

ただ、ブラウザによって多少高さが違うようなんですが、まあもともと
かなり違うものですからデザイナでは無いのでよしとしてもいいと思い
ます。


※ Opera はこのページでうまくいかないですね。
( CSS の important がたぶん邪魔しています )


posted by lightbox at 2011-03-11 09:55 | HTML / CSS | このブログの読者になる | 更新情報をチェックする

2011年03月10日


Seesaa : IE専用 : リンクコンテンツのオートマチック登録(変更)、エクスポート、インポート( ブックマークレット )

2011/03/10 更新

☆ エクスポートとインポートを実装しました。
☆ Seesaa と さくらでデータの互換性をテストしました



ポップアップブロックを有効にしている場合は、blog.seesaa.jp を許可するように
ドメインを登録して下さい。さくらで使用する場合は同様にさくらの管理ページの
ドメインを登録して下さい

※ ブックマークレットですが、現在 IE 専用です

▼ IE専用ブックマークレット

Seesaa(さくら)専用オートマチックリンクデータ登録
▼ 1件ぶんのフォーマット
-----------------------
タイトル
URL
0
順序番号
-----------------------

まず、このようなフォーマットをエディタで事前に複数作っておくか、
リンクデータの管理画面で既存のリンクデータを取得し、
移行先のリンクデータの管理画面でそのデータを貼り付けて取得するか
どちらかの方法でデータを用意します

※ 以下のサンプルは XP+IE7 で、ポップアップを必ずタブにするようにしていますが、
※ そうで無い場合は、左上にウインドウが開きます。

まず、転送元のリンク管理ページを開いて、ブックマークレットを実行すると、
ポップアップが許可されていると、ウインドウが開きます
L001

以下のウインドウで、「リンク取得」ボタンでリンクデータを取得した後、
手動でクリップボードにコピーして加工するかそのまま利用します
L001

その後で、転送先のリンク管理ページを開いて同様にブックマークレット
を開いて、コピーしたデータを貼り付けてから「リンク適用」ボタンを
クリックします
すると、転送先のデータ行のほうがが少ない場合のみ自動的にデータを追加し、
そうで無い場合は、データ内容を既存行に転送します
L001

ここで「保存」ボタンを自分でクリックすると全て適用されます
L001
さくらのブログからリンクデータを移行する為に作成しましたが、テストはSeesaa 同士で
行っていますので、Seesaa 内でのリンクデータのコピーに利用できます。
注意。実行本体は、lightbox.on.coocan.jp にありますので、
Nifty のラクーカンが落ちていると動きません。





Seesaa独自タグ簡易リファレンス

posted by lightbox at 2011-03-10 22:36 | Seesaa プログ管理支援 | このブログの読者になる | 更新情報をチェックする

JavaScript : 右から指定した文字数を取りだす right メソッドを String オブジェクトに追加

必要な時に定義しておくだけで良いですが、これを使って文字列の前を指定した文字列で埋めて固定長の長さの文字列を取りだす事ができます。

10文字以内の前ゼロであれば、

("0000000000"+x).right(n) ですね。

unicode メソッドは、right を使って \uxxxx という unicode 形式の文字列を作成します。これは、直接使うのでは無く、日本語文字列をキャラクタセットに依存しない文字列にする為の作業用です。
<script type="text/javascript">
String.prototype.right = function(n){
	var str = this.valueOf();
	str = str.substr(str.length-n,n);
	return str;
}
String.prototype.unicode = function() {
	var str = this.valueOf();
	var re = new RegExp("[^A-Za-z0-9_\f\n\r\t\v]","g");
	str = str.replace(re,function(s){
		var str;
		str = s.charCodeAt(0).toString(16);
		str = "0000"+str;
		str = str.right(4);
		str = "\u"+str;
		return(str);
	})
	return str;
}
</script>




posted by lightbox at 2011-03-10 15:51 | JavaScript オブジェクト | このブログの読者になる | 更新情報をチェックする

2011年03月09日


特殊文字中の丸付き文字一覧。

@ A B C D E F G H I J K L M N O P Q R S

㉑ ㉒ ㉓ ㉔ ㉕ ㉖ ㉗ ㉘ ㉙ ㉚ ㉛ ㉜ ㉝ ㉞ ㉟ ㊱ ㊲ ㊳ ㊴ ㊵

㊶ ㊷ ㊸ ㊹ ㊺ ㊻ ㊼ ㊽ ㊾ ㊿ Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ

Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ ⓐ ⓑ ⓒ ⓓ

ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ 

ⓨ ⓩ ⓪ ❶ ❷ ❸ ❹ ❺ ❻ ❼ ❽ ❾ ❿ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱

⓲ ⓳ ⓴ ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ➀ ➁ ➂ ➃ ➄ ➅ ➆

➇ ➈ ➉ ➊ ➋ ➌ ➍ ➎ ➏ ➐ ➑ ➒ ➓ ㊀ ㊁ ㊂ ㊃ ㊄ ㊅ ㊆

㊇ ㊈ ㊉ ㊊ ㊋ ㊌ ㊍ ㊎ ㊏ ㊐ ㊑ ㊒ ㊓ ㊔ ㊕ ㊖ ㊗ ㊘ ㊙ ㊚

㊛ ㊜ ㊝ ㊞ ㊟ ㊠ ㊡ ㊢ ㊣      ㊩ ㊪ ㊫ ㊬ ㊭ ㊮

㊯ ㊰ ㋐ ㋑ ㋒ ㋓ ㋔ ㋕ ㋖ ㋗ ㋘ ㋙ ㋚ ㋛ ㋜ ㋝ ㋞ ㋟ ㋠ ㋡

㋢ ㋣ ㋤ ㋥ ㋦ ㋧ ㋨ ㋩ ㋪ ㋫ ㋬ ㋭ ㋮ ㋯ ㋰ ㋱ ㋲ ㋳ ㋴ ㋵

㋶ ㋷ ㋸ ㋹ ㋺ ㋻ ㋼ ㋽ ㋾ 〶 ✪ ❂ ⍟ ◉ ○ ◌ ◍ ◎ ● ◐ ◑

◒ ◓ ◔ ◕ ☯ ☹ ☺ ☻ ⚽ ⚾ ⛔
全ての一覧はこちらでどうぞ
HTML 特殊文字リスト

関連する記事

JavaScript : HTML 特殊文字を書き出すコード( ツール )


posted by lightbox at 2011-03-09 16:41 | 記録 | このブログの読者になる | 更新情報をチェックする
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 終わり