SQLの窓

2013年12月24日


IE11 の URL の最大長はあいかわらず 2083 でした。他のブラウザは三万超えているのに・・・

現在は結構な長さが使えるようです。詳細は以下をご覧ください

IE : URLに使用可能な文字数


▼ ( 2013 年当時の実際のお話 )
必要があって、実際に調べてみました( 仕様では無く GET メソッドでデータが保持された結果の長さをカウントしました )

IE は仕様通りなんですが、融通きかないですね。やっと WebGL 動くようになりましたが、こういうところがおろそかです。
IE11 2083
Google Chrome 31.0.1650.63 m  32464
Firefox 26.0 32491
日本語は、パーセントエンコーディングされるので、もっと保持できる量は減ります。(さらに、キャラクタセットの違いによっても差が出る事になります)


posted by lightbox at 2013-12-24 03:07 | IE | このブログの読者になる | 更新情報をチェックする

2013年12月13日


IE11 では、バージョンベクタが動作しないので結構困った事です

バージョン ベクタ

▼ こういうやつです。
<head>
   <title>Test Page</title>
   <meta http-equiv="X-UA-Compatible" content="IE=8"/>
   <!--[if gte IE 8]>
   <linkrel="stylesheet" type="text/css" href="/stylesheets/standards.css" />
   <![endif]-->
   <!--[if IE 7]>
   <linkrel="stylesheet" type="text/css" href="/stylesheets/ie.css" />
   <![endif]-->
</head>
普通にメニューを作成していると、レイアウトがこんな感じに。
IE7
IE8 ×
IE9 ×
IE10
IE11
しかも、IE11 が バージョンベクタそのものを無視するようなので、開発者ツールのエミュレータでレイアウトの検証ができません。

IE10 の開発者ツールで確認する必要があります。
( いいかげんにして欲しい )


posted by lightbox at 2013-12-13 22:33 | IE | このブログの読者になる | 更新情報をチェックする

2013年12月11日


IE11 から利用可能になったカスタムデータ属性(datasetプロパティ)

当然、Google Chrome や Firefox は既に利用できます。

Microsoft の英文サイトのドキュメントにあるサンプルコード酷いバグ( Microsoft とは到底思えない酷いもの )持ちだったので、正しく修正したものをここに記載しておきます。
<style>
div {
	display:block;
	border: solid 2px green;
	width:200px;
	height:200px; 
	text-align:center;
}
button {
	position:absolute;
	top:250px;
}
</style>
<!-- This div element contains four custom data attributes -->
<div id="spacegame" 
	data-ship-id="Infinity" 
	data-weapons="magnetic accelerator cannons"  
	data-shield-value="100"
	data-registry="INF 101">UNSC Infinity</div>
<button id="shootNow" onclick="Shoot();"> Fire </button>   
<script>
//  get the div element
var myDiv = document.getElementById('spacegame');

// function to subtract the shield value
function Shoot() {
	var shieldsRemaining = parseInt(myDiv.dataset.shieldValue);
	shieldsRemaining -= 25;  // subtract 25%
	// if shields are below 25%, ship is destroyed
	if (shieldsRemaining < 25){
		myDiv.textContent = "The " + myDiv.dataset.shipId + " is now destroyed"; // signal ship is gone
		myDiv.style.backgroundColor = "red"; // change color of block
		document.getElementById("shootNow").disabled = true; // don't allow any more input
	}
	else {
		myDiv.dataset.shieldValue = shieldsRemaining.toString();
	}
}
</script>



UNSC Infinity
クリック4回目で赤くなります


posted by lightbox at 2013-12-11 13:07 | IE | このブログの読者になる | 更新情報をチェックする

IE11 でファイルをダウンロードしてその終了を待つ

start /wait iexplore.exe -noframemerging URL

バッチファイル内の一つの対話ジョブとして実行できます。ダウンロードすべき URL が対象な場合、ダイアログが表示されて操作が必要になります





このダイアログを終了するまで、バッチファイルは処理を停止します

-noframemerging は、IE を 新しいセッションで起動するオプションですが、このオプションである理由は無く、オプション無しで実行すると、/WAIT が機能しなかったので付加しています。

「ひょっとして・・・」と思ってやったらうまくいっただけで、裏付けはありません。

関連する Microsoft ドキュメント

Internet Explorer Command Line Options


posted by lightbox at 2013-12-11 03:07 | IE | このブログの読者になる | 更新情報をチェックする

2013年12月10日


IE11 でVBScript が動作しないので、x-ua-compatible を使用して Excel(Excel.Application) の処理を検証

結構重要な情報のはずなのですが、IE11 関連の正式ドキュメントに詳しい記載は無く、検索しても Stack Overflow の記事しか手に入りません。でも、内容は単純で試せば良いし、Microsoft としてはあやふやにしたい部分が多い、あるいはできるだけ話題を避けたいタブーなのかもしれません。

現実問題、イントラネットで VBScript を使う場面はかなりあるはずで、特に Excel を使った連携プレイは多くの業務を円滑に進める基盤となっている可能性もあります。それと、IE11 は完全に VBScript を拒絶していますが、IE10 だからいいというわけでも無く、JavaScript や HTML での動作を確認したい場合は IE9 として使う事をお勧めします。

実際 IE10 になったとたん動かなくなったシステムの為、IE9 に戻した経緯があります。とは言え、それは10年前に作られたシステムなので、最近のものであれば、IE10 として動作はすると思います。

いずれにしても、XP が終わり、IE11 が発進した事によって、イントラネットシステムの管理者または担当者はとても頭が痛いと思います。

以下のコードは、イントラネットで、安全だとマークされていない ActiveX コントロールを使用可能にした Excel の処理のテストコードです。Windows7 + IE11 + Office2012 で動作しました。おもしろいのは、VBScript で オブジェクトを console.dir できるところですが、あまり有用な情報は表示されませんでした。なんだか『とりあえず』感が満載でした。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="x-ua-compatible" content="IE=9">
<script language="VBScript">

Const xlMaximized = -4137

Function test() 

	alert("OK")
	console.log( "OK" )

	Dim MyExcel

	Set MyExcel = new CExcel
	Set Workbook = MyExcel.Create("c:\test.xlsx")
	Workbook.ActiveSheet.Cells(2, 1) = "IE11+Excelです"
	Workbook.Save

	console.dir( MyExcel )
	console.dir( Workbook )

	MyExcel.Quit
	MyExcel.Load( "c:\test.xlsx" )

	Set MyExcel = Nothing

End Function

Class CExcel

	Public App
	Public WshShell
	Public ErrDescription
	Private WorkBook
	Public CurBook

' ************************************************
' インスタンスが作成されたときの処理
' ************************************************
	Private Sub Class_Initialize()

		Call InitSetting()
		console.log( "Class_Initialize" )

	End Sub

' ************************************************
' インスタンスが終了したときの処理
' ( Set インタンス変数 = Nothing で発生 )
' ************************************************
	Private Sub Class_Terminate()

		Call Quit()
		console.log( "Class_Terminate" )

	End Sub

' ************************************************
' 初期処理
' ************************************************
	Public Default Function InitSetting()

		if IsEmpty( App ) then
			Set App = CreateObject("Excel.Application")
		end if 
		if IsEmpty( WshShell ) then
			Set WshShell = CreateObject("WScript.Shell")
		end if 

		' ユーザーに入力を促すメッセージを表示させないようにする
		App.DisplayAlerts = False

		Set CurBook = Nothing

	end function

' ************************************************
' 終了
' ************************************************
	Public Function Quit()

		If not IsEmpty( App ) Then
			For Each Workbook In App.Workbooks
				' 全てのブックを保存した事にする
				WorkBook.Saved = True
			Next
			App.Quit
			Set App = Nothing
			App = Empty
			Set CurBook = Nothing
		End If

	End Function

' ************************************************
' 表示・非表示
' ************************************************
	Public Property Let Visible( bFlg )
		App.Visible = bFlg
	End Property 
	Public Property Get Visible
		Visible = App.Visible
	End Property

' ************************************************
' 開く
' ************************************************
	Public Function Open( strPath )

		on error resume next
		Set Open = App.Workbooks.Open(strPath)
		if Err.Number <> 0 then
			Set Open = Nothing
			ErrDescription = Err.Description
			Exit Function
		end if
		on error goto 0
		Set CurBook = Open

		' アクティブなウィンドウを最大化
		App.ActiveWindow.WindowState = xlMaximized

	End Function

' ************************************************
' 新規ブック作成
' ************************************************
	Public Function Create( strPath )

		Dim nBooks

		App.Workbooks.Add
		nBooks = App.Workbooks.Count
		Set Create = App.Workbooks( nBooks )
		Set CurBook = Create
		CurBook.Activate

		' アクティブなウィンドウを最大化
		App.ActiveWindow.WindowState = xlMaximized

		if strPath <> "" then
			on error resume next
			CurBook.SaveAs( strPath )
			if Err.Number <> 0 then
				MsgBox( Err.Description )
				Exit Function
			end if
			on error goto 0
		end if

	End Function

' ************************************************
' 閉じる
' ************************************************
	Public Function Close( MyBook )

		if IsObject( MyBook ) then
			MyBook.Saved = True
			MyBook.Close
			Set MyBook = Nothing
			MyBook = Empty
		else
			if CurBook is Nothing then
			else
				CurBook.Saved = True
				CurBook.Close
				Set CurBook = Nothing
			end if
		end if

	End Function

' ******************************************************
' 上書き保存
' ******************************************************
	Function Save( MyBook )

		if IsObject( MyBook ) then
			MyBook.Save
		else
			CurBook.Save
		end if

	End Function

' ******************************************************
' 名前を付けて保存
' ******************************************************
	Function SaveAs( MyBook, strPath )

		if IsObject( MyBook ) then
			MyBook.SaveAs strPath
		else
			CurBook.SaveAs strPath
		end if

	End Function

' ******************************************************
' LOAD
' ******************************************************
	Function Load( strPath )

		if not IsEmpty( App ) then
			MsgBox( "Excel をロードする前に、Quitを実行して下さい   " )
			Exit Function
		end if

		Call WshShell.Run( _
			"RunDLL32.EXE shell32.dll,ShellExec_RunDLL " & _
			strPath _
		)

	End Function

End Class

</script>
</head>
<body>

<input type="button" value="実行" onclick="Call test()" language="VBScript">

</body>
</html>



posted by lightbox at 2013-12-10 17:23 | IE | このブログの読者になる | 更新情報をチェックする

2013年12月06日


IE11 における、document.selection は削除されます。

今回修正したのは、テキストエリアの選択文字列の処理です。

▼ の API が IE11 で削除されました。
attachEvent
window.execScript
window.doScroll
document.all
document.fileSize、img.fileSize
script.onreadystatechange と script.readyState
document.selection
document.createStyleSheet
style.styleSheet
window.createPopup  
それぞれについて、代替機能が提案されていますが、document.selection の場合、IE9 から実装されている機能等により、Google Chrome と同じ方法で処理できました。よって、trident/ 文字列がある場合は、Google Chrome 扱いすると対処できる事が推測されます。
posted by lightbox at 2013-12-06 02:47 | IE | このブログの読者になる | 更新情報をチェックする
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 終わり