Open棟梁Project - マイクロソフト系技術情報 Wiki

* 目次 [#c1064ebb]
#contents

*HTMLの確認 [#gc7effba]

使ってみよう! [F12] IE9 開発者ツール~
- HTMLとJavaScript のデバッグ編 - monoe's blog - Site Home - MSDN Blogs~
http://blogs.msdn.com/b/osamum/archive/2011/08/04/f12-ie9-html-javascript.aspx

こちらで、
-HTML のデバッグ
-JavaScript のデバッグ

が可能です

HTMLを確認するには、[F12]で[F12 開発者ツール]を起動し、~
メニューの[表示] → [ソース] → [元の形式]でHTMLが確認できます。

*HTTPデバッグ [#o9b0e736]
ブラウザでの動作を分析する際には、HTTPデバッグが必須になるので、~
以下を参考にして、HTTPのログを取得分析ください(キャッシュ関連の動作など)。

-[[HTTPデバッグ・プロキシ Fiddler>電文を確認する方法(パケット・キャプチャ)#w11d3ad2]]

**キャッシュの動作 [#ped407e5]

キャッシュの動作は以下に示すように複雑ですので、~
必要に応じて都度HTTPデバッグ・プロキシを使用して~
HTTPデバッグするのが良いかと思います。~

-浏览器静态资源的版本控制新思路.~
强制更新指定资源缓存.的探讨 - Franky - 博客园~
http://www.cnblogs.com/_franky/archive/2012/07/05/2577141.html~

>↓Google翻訳で翻訳

-静的リソースブラウザのバージョンについて~
の議論は、新しいアイデアを制御します。~
指定されたリソースのキャッシュを強制的に更新する。~
http://translate.google.co.jp/translate?sl=zh-CN&tl=ja&js=n&prev=_t&hl=ja&ie=UTF-8&eotf=1&u=http%3A%2F%2Fwww.cnblogs.com%2F_franky%2Farchive%2F2012%2F07%2F05%2F2577141.html~

また、システムがキャッシュの動作に翻弄されてしまう場合は、~
システム的にはサーバサイドでなんとかすると良いかと思います。~

-クロス・ブラウザで、各ブラウザの使用をを理解して・・・
-パッチなどで動作が変わり得るクライアント・ブラウザの仕様に合わせて・・・

プログラムを作成するという発想が間違いかと思います。~

明確な設計をするのなら、三菱東京UFJ銀行とみずほ銀行の~
インターネット・バンキングを参考にすると良いかと思います。

-三菱東京UFJ銀行は不正操作に倒す方式で、~
(開発者・技術者にとっては)解り易いのですが、

-みずほ銀行は三菱東京UFJ銀行のインターネット・バンキングでは~
不正操作に該当するブラウザの「戻る」ボタンで発生するリクエストも~
(恐らくフラグなどを使用して)理解して処理しているようです。~
#なので、ブラウザの「戻る」ボタンで、業務トップに戻るなどの動作をします。

後者の方がユーザフレンドリですが、当然ですがメリット・デメリットがあります。

*デザイン [#nedb9cf5]

**DPIと単位 [#w2eaaa34]
長さ(length)の単位 - Web標準普及プロジェクト~
http://www.mozilla.gr.jp/standards/webtips0027.html~

>このように絶対単位はディスプレイで表示する場合、読み手が適切な設定を行っていないと~
正しい物理長は計算できないため、絶対単位という名前から受けるイメージとは違い、~
実際の表示は環境に大きく依存してしまいます。

***DPI [#cfdefa15]
環境:ディスプレイの設定。

-dpi - Wikipedia~
http://ja.wikipedia.org/wiki/Dpi
>dots per inchの略で、ドット密度の単位である。~
1インチ(1平方インチではない)の幅の中にどれだけのドットを表現できるかを表す。~
なお、dpiで表したドット密度の数値を、単にdpiと呼ぶことがある。

設定方法については下記参照のこと。

-画面上のテキストを大きくまたは小さくする~
http://windows.microsoft.com/ja-JP/windows-vista/Make-the-text-on-your-screen-larger-or-smaller
++[コントロール パネル]をクリック
++[デスクトップのカスタマイズ]をクリック
++[個人設定]をクリック
++左側のウィンドウで、[フォント サイズ (DPI) の調整]

Windows8では、解像度の高い環境では、~
自動的に『すべての項目のサイズを変更する』の設定が~
『中(125%)』などに変更されることがあるようです。~

これにより、下記にもある、
[[スクロールバーの幅>#hecd628b]]
が変更され、問題となることがあります。

***単位 [#j2cb72ca]
WEB作成の豆知識 -単位について-~
http://www.web-mame.net/css_course/css_size.html
-px :画面の1ピクセルの長さを表す単位
-em :文字の高さを 1em とした単位
-ex :小文字の「x」の高さを 1ex とした単位
-in :インチ
-pt :ポイント(1/72 インチ)
-pc :パイカ(12 ポイント)
-cm :センチメートル
-mm :ミリメートル
-%  :相対的なサイズ指定

**表示拡大率 [#g6f964c2]

***デフォルトの設定 [#x8225d99]

-前回ブラウザ終了時の拡大率を使用し、表示します。

-ただし、以下の場合は指定の拡大率を使用します。
--明示的にページ側で拡大率を設定した場合
--ThirdPartyのadd-onにより各サイトの拡大率を設定した場合

***拡大率の設定方法 [#v7281701]
[インターネットオプション] - [詳細設定タブ]~
 - [ユーザ補助] - [新しいウィンドウとタブの拡大レベルをリセット]~
をオンにするとすべてのページで100%で表示されるようになる。

ページから制御する方法としては、~
あまりお勧めできませんが、以下のような方法があります。

-zoom属性を利用した方法~

--IEのみの独自仕様であり、バージョンによっても挙動が異なる~
との報告がありますので、安易に利用することは推奨しません。

--Webページに拡大/縮小機能をつける(IE専用)~
http://www.h-fj.com/blog/archives/2005/04/21-115524.php

-screen.deviceDPIによる方法

--ブラウザの表示倍率は変更せず、~
表示内容の倍率を内部的に再計算する方法(IEのみ)。

--乱雑モックアップ|ブラウザの表示倍率を無理やり100%~
http://sakurachiro.com/_exercise/html_css/zoom1/index.html

***自動調整 [#m820aeb4]
拡大率はディスプレイの設定にも依存する。

>[コントロールパネル] - [ディスプレイ] - [画面上の文字を読みやすくします]

最近の解像度の高いディスプレイだと、文字が小さく読みずらいため、~
見た目上の文字のサイズを大きくする設定となっている。

**スクロールバーの幅、ボーダ幅 [#y9dc8a0b]
ブラウザによってスクロールバーの幅、ボーダ幅が異なる。~

ブラウザの表示領域幅 その2 - hedgehog’s blog~
http://d.hatena.ne.jp/iDrop/20070608/1181273594
>IEはWindows OSのテーマが「Windows XP」の場合と、「Windows Classic」の場合とで、スクロールバーのデザインが大きく異なり、それはスクロールバー幅やボーダー幅にも影響を及ぼしています。FirefoxとOperaについては、テーマの違いによるスクロールバーのデザインの変化は一見ありませんが、やはり各値に微妙な差異が生じています。

**横スクロールバー表示問題 [#l744bbf4]

-ページの横幅が足りているのに横スクロールバーがでてしまいます。- Yahoo!知恵袋~
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1120799241

-スタイルシートを使ってブラウザの縦・横・両方の~
スクロールバーを消す(隠す)方法 - キーワードノート~
http://kw-note.com/website/hide-scroll-css/

--overflow:hidden
--overflow:auto;

で対応可能。

ただし、overflow-x、overflow-yはIEのみの独自拡張なので、~
IE以外のブラウザでは横スクロールバーが出てしまう。

以下のようなケースもあるようですので、基本的には、~
クロスブラウザでもサイズが足りるように余裕を持たすのが良いようです。

-ブラウザ幅を超えた部分を隠す手法としてbody { overflow-x:hidden; } は~
あまり使わない方がいい気がする件 - JeffreyFrancesco.org~
http://jeffreyfrancesco.org/weblog/2011050801
>例えば Mac のマルチタッチトラックパッドで2本指スクロールが有効な場合、うっかり斜め方向にスワイプしてしまったがために、スクロールした瞬間にコンテンツが消滅したように見えてしまう(実際にははみ出た部分が見えてしまうのですが、スクロールバーが無いのでずれたのかどうかよく分からない)という現象が Safari では時たま発生してしまいます(発生しない事もあるのでこれがまたよく分からない)その他の Firefox や Opera ではそこまで酷い事にはなりませんが、どちらにせよ斜め方向にスワイプしてしまった場合には横側方向にもズレてしまう事に変わりありませんです。

-IEでoverflowhiddenが効かない - GEKKO CREATORS~
http://gekko-inc.co.jp/gekko_creators/2011/10/css-tips1.php
>IEは子要素に【position:relative;】を指定している場合、親要素の【overflow:hidden;】が効かなくようで、親ボックスにも【position:relative】いれるとIEでも正常に表示されるようです。

-???のブログ  消えない縦スクロール - livedoor Blog(ブログ)~
http://blog.livedoor.jp/papi1963/archives/442568.html
>しかしこれをやると縦スクロールバーは”必ず”出なくなるが、そのために横スクロールバーが必要な状況になっても横スクロールバーもでなくなる。つまり、右端は明らかにちょんぎれた状態だが、スクロールバーがでないためスクロールさせてみることができない。そこで、overflow-y:autoとするとスクロールバーが不要のときは表示しないが、横方向がきつくなると、スクロールバーを表示しようとするが、「なぜか」縦スクロールバーを表示し、横スクロールバーも「なぜか」ウィンドウの下端ではなく1つ上がった中途半端な位置にでてくる。ちなみにoverflow-yなしのデフォルトでは常に縦スクロールバーがあり、横スクロールバーは必要な状況となるとウィンドウ下端のまっとうな位置にでてくる。

**ブラウザで表示されるフォント [#j388d6cc]
ブラウザで表示されるフォントが異なるケースの対応について。

>CSSのfont-family:ヒラギノとMS Pゴシックとメイリオの悩ましい関係~
http://loconet.web2.jp/blog/archives/2007/02/cssfontfamily.html

-CSSなどで「正しく」「フォント名」を指定する。
--「書体の総称」ではブラウザ毎に解釈が変わる事がある。
--フォント名でも適切に指定しないと、環境によっては正しく解釈されない。

-環境依存もあるので注意する。
--第一候補のフォントが環境にインストールされていない場合
--同じフォント名でも、書体が違うケースがある。
---Vistaの新MSフォントのうちの168文字は、改正後JIS X0213に基づいたデザインとなった。
---WindowsXPに標準搭載されているMS明朝・MSゴシックのバージョンは2.3(V2.3)
---Vistaに標準搭載されるMS明朝・MSゴシックのバージョンは5.0(V5.0)

**IE n 互換モード [#t543fb26]
***概要 [#z0db7546]
-IE8は、CSS2.1規格へ完全準拠、およびCSS 3規格への部分的な準拠が行われた。
-IE7でもある程度のCSS2.1規格への準拠は行われていたが完全ではなかった。

-IE8では従来のブラウザ(IE)向けに作られたWebサイトが正しく表示できなくなるので~
従来と同じように動作させるために、「互換表示」という機能を用意している。

-新しいブラウザ(標準に準拠)で古いレガシー・ブラウザ対応ページを見るための互換モードは、

--DOCTYPE
--metaタグ
--HTTPのResponseヘッダ
--クライアント操作(互換表示ボタン)

>で設定が可能である。~
#ASP.NETでは、web.configの設定でHTTPのResponseヘッダで互換モード設定が可能。

***互換モードを使用しない方法 [#d9697a56]
互換モードを使用しない方法(=クロス・ブラウザ対応方法)として、
-JavaScriptのプロパティや
-CSSの条件付きコメントで

制御する方法もある。

-参考

--IEの異なるバージョンごとにスタイルシートを適用する方法のおさらい  コリス~
http://coliss.com/articles/build-websites/operation/work/use-different-styles-for-different-internet-explorer-versions-by-paulund.html

***CSS2.1、3規格へ準拠 [#ic4f4a1e]
互換モードの打ち切りも考えられるので、互換モードを使用しつつ、~
システム更改に伴う前提環境の変更などに伴い、CSS2.1、3規格への準拠も検討する。~

ただし、CSS2.1、3規格に準拠したからと言って~
クロス・ブラウザが保証されるわけではないので注意する。

***まとめ [#zeeb33e0]
-IEでは互換モードが使用できる。~
しかし、互換モードの打ち切りも考えられるので、互換モードを使用しつつ、~
システム更改に伴う前提環境の変更などに伴い、CSS2.1、3規格への準拠も検討する。~
#CSS2.1、3規格へ準拠でクロス・ブラウザが保証されるわけではないので注意

-互換モードを使用しない方法(=クロス・ブラウザ対応方法)として、
--JavaScript?のプロパティや
--CSSの条件付きコメントで

>制御する方法もある。

***参考情報 [#l7798aa4]

-概要情報
--Internet Explorer 8(前編) - @IT~
http://www.atmarkit.co.jp/fwin2k/productreview/ie801/ie801_02.html
--初心者でもわかる! IE で互換表示 (IE8)~
http://support.microsoft.com/kb/2539126/ja
--IE8互換モードについて~
Japan IE Support Team Blog - Site Home - TechNet Blogs~
http://blogs.technet.com/b/jpieblog/archive/2009/09/09/3280034.aspx

-MSDN
--現在のサイトを解決する方法~
http://msdn.microsoft.com/ja-jp/library/cc817570.aspx
--META タグと将来の互換性のロック~
http://msdn.microsoft.com/ja-jp/library/cc817574.aspx
--ドキュメント互換性の定義~
http://msdn.microsoft.com/ja-jp/library/cc288325.aspx

-CSS Compatibility and Internet Explorer~
http://msdn.microsoft.com/en-us/library/cc351024.aspx

*IEイベント [#h259c0b4]

**F1抑止 [#r47e0d2e]
onhelpイベントで抑止します。

 <!-- onhelpイベントを無効にする。-->
 <script language="javascript" for="document" event="onhelp">
  event.returnValue = false;
 </script>

秘文AE WebGuardのIEアドオンが有効の場合は、~
上記イベント抑止が機能しないことがあるようです。

**「×」ボタン抑止 [#d8820e9e]
今の所、出来ないという結論~

***技術的問題 [#f9592c1f]
IEのクローズ処理をハンドリングする - 開発思考実験日記~
http://d.hatena.ne.jp/dotnetmemo/20070125/1169742909

-JavaScript(onbeforeunload)を使用した方法は抜けが多いため推奨はしない。

--更新ボタンを押してもCloseだと判断してしまう問題がある。

--event.clientXを使用して「x」ボタンを識別する方法もあるが、

---ワイドディスプレイなどで、動作が変わる事がある。

---JavaScriptのEvent.clientXプロパティの値が子画面の有無で変わる~
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=46012&forum=7

---event.clientXをもっと厳密に調べるアイデア(あまり推奨できる方法が無い)~
● 「File->close」や「Alt-F4」には対応できないようだ。~
● 「x」ボタンの付近でF5押しても誤った認識をしてしまう。

--色々なイベントで入ってきて、且つ区別ができない。
---IEでのonBeforeUnload の挙動  Inside ASCADE~
http://inside.ascade.co.jp/node/58
---beforeunload  onbeforeunload event (Internet Explorer)~
http://msdn.microsoft.com/en-us/library/ie/ms536907.aspx

-Win32、ActiveX系
--IWebBrowser2(ie_OnQuit)も

--UI Automationも
---UI Automation のススメ~
'- JAPAN Platform SDK(Windows SDK) Support Team Blog - MSDN Blogs~
http://blogs.msdn.com/b/japan_platform_sdkwindows_sdk_support_team_blog/archive/2011/05/26/ui-automation.aspx

--SetWindowsHookExも
---別のプロセスにコードを割り込ませる3つの方法 - インターネットコム~
http://japan.internet.com/developer/20050830/26.html
---Peeking into Password Edit '& Internet Explorer - Super Password Spy++~
http://www.codeguru.com/ieprogram/SPwdSpy.html

>>イベント自体を止めることはできないので、~
フラグとJavaScriptと組み合わせるなどしないといけない。

--Win32、ActiveXの処理でActiveXをロードして処理する場合、~
ActiveXが何時ロード、アンロードされるかなどもポイントとなる。

--IE8からタブ毎のプロセスになっており、~
高度なフィージビリティスタディが必要になる。

***要件的問題 [#oe14c0b7]
要件自体に問題があるとも考えられる。

-そもそもWebのコンテンツがホストのブラウザを制御する~
と言う発想にリテラシ(セキュリティ)的な問題がある。

-従って、いざお金を出すと言う所で「要件がオカシイ」と気が付くため、~
IEのクローズ処理を制御する旧製品なども販売不振であった。

-また、その操作性(IEの×系抑止)が、基本的に実現できるものと、~
お客に思われてしまうのもあまり良くないのではないか?と思います。~
例えば、onbeforeunloadで実現したものが全社的に適用された後、~
抜けを直して欲しいなどの要求が増えてくると難しくなってきます。

***ログオフ、Sessionクリア [#d7c39cf1]
-JavaScript(onbeforeunload)中でSubmitするように実装しますが、上記と同様に困難。
-なお、onunloadではunload後になるので、サブミットされません(以下、HPを参照)。

--Javascript onunload form submit isn't submitting data - Stack Overflow~
http://stackoverflow.com/questions/2651419/javascript-onunload-form-submit-isnt-submitting-data

-Sessionタイムアウトを短めに設定し、タイマーで定期的にリクエストを送り~
ユーザが画面を開いている間は、Sessionタイムアウトさせない方式も採れます。

--Open棟梁には、ユーザ操作中のSessionタイムアウトを防ぐため、~
Webサーバへ一定期間毎にPINGを行うHttpPing()メソッドが用意されています。

**画面サイズ拡大・縮小の制御 [#pe5f5f6a]
Ctrl + 「+」(画面サイズ拡大)および~
Ctrl + 「-」(画面サイズ縮小)はJavaScriptで抑止できない。

-動作検証を行ってみたところ、~
onkeydown、onkeypressイベントが~
発生するよりも先に拡大縮小が行われています。

-拡大縮小を抑止はできないようですが、WB.ExecWB(ActiveXコントロール)~
にて拡大縮小後に元に戻すことが可能であるかもしれません。
--[IE8]Ctrl+プラスの画面拡大を無効にしたい - マイクロソフト コミュニティ~
http://answers.microsoft.com/ja-jp/ie/forum/ie8-windows_7/ie8ctrl%E3%83%97%E3%83%A9%E3%82%B9%E3%81%AE/8e79b0af-228c-4152-aaaf-36fc0f57fbb1?msgId=d2581a32-d82d-416a-8312-60cc418c34a1

**Select Boxの切替前確認 [#af1d5a1b]
***実装方法 [#a53fdb55]
以下で実現可能の様です。

>JavaScript SELECT BOX の OnChange をキャンセルする - MyMemoWiki~
http://typea.info/tips/wiki.cgi?page=JavaScript+SELECT+BOX+%A4%CE+OnChange+%A4%F2%A5%AD%A5%E3%A5%F3%A5%BB%A5%EB%A4%B9%A4%EB

-onbeforeactivateイベントで設定を記憶しておき、~

 onbeforeactivate = "this.previouse_selected_value=this.value;";

-onchangeイベントで切替前確認を表示します。~
onchangeイベントでfalseを返すと、変更をクリアできます。

 onchange="if(window.confirm(message)){}else{this.value=this.previouse_selected_value;return false;};"

-なお、
--onbeforeactivateイベント
--previouse_selected_valueプロパティ

>はIE限定のようなので、他のブラウザでは、~
onload+onchangeイベントで変更前の値を記憶する必要があります。

***ASP.NETのDropDownList [#yf84542e]
AutoPostBack="True"設定時、onchangeにdoPostBackが仕掛けられます。~
これにより、onchangeイベントに以下のjavascriptが仕掛けられます。

 onchange="javascript:setTimeout(
  '__doPostBack(\'ctl00$ddlMDropDownList1\',\'\')', 0)" 

これも、onchangeイベントでfalseを返すと、変更をクリアできます。

**サンプル [#tee74850]
全イベントの抑止サンプルは、Open棟梁付属のJavaScriptに同梱しています。~
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Samples/WebApp_sample/ProjectX_sample/Framework/Js/ie_key_event.js

*モーダルダイアログ全般 [#a1f7cb60]

-showModalDialog~
http://msdn.microsoft.com/ja-jp/library/cc428178.aspx

-今さらながらJavaScriptのwindow.showModalDialog~
について調べてみた。 - 大人になったら肺呼吸~
http://d.hatena.ne.jp/replication/20100117/1263694945

-IE以外の最近の殆どのブラウザがshowModalDialogをサポートしています(operaを除く)。~
また、HTML5でもshowModalDialogが標準仕様として取り込まれているようです。

--showModalDialog Opens a New Window~
on Submit or location.href  Justin Cooney - Programming Tips~
http://jwcooney.com/2011/12/22/showmodaldialog-opens-a-new-window-on-submit-or-location-href/

**モーダルダイアログでポストバック [#u971fe04]
モーダルダイアログwindowでポストバックすると、別windowが表示される。

***対応方法 [#l36a6f29]
下記の方法がある。

-<base>タグに_selfを指定する
 <head runat="server">
  <base target="_self"></base>
 </head>

>ただし、JavaScriptで

--子画面側でフォーカス移動ができなくなった。
--子画面から親画面側のダイアログを動作できなくなった。

>などの問題が報告されている。

-FRAMESET、FRAMEの踏み台を経由する。
 <HTML>
  <HEAD>
   <TITLE></TITLE>
  </HEAD>
  <FRAMESET rows="*" frameborder="0" border="0" framespacing="0">
   <FRAME id="frameDialog" name="frameDialog" src="実際の子フォーム.aspx" noresize scrolling="no" frameborder=0>
  </FRAMESET>
 </HTML>

>ちなみにOpen棟梁のモーダルダイアログ表示機能では、こちらの方法を採用している。~
但しこの機能には1点問題があり、IE以外ではsrcに指定した画面から~
showModalDialogの引数(vArguments)が取得できず、動作しないことがある。

-window.open()でモーダル化
 // 戻り値の子画面オブジェクトを取得 
 var subwin = window.open(page, null, param); 
 
 // 子画面の表示状況を確認する関数 
 function chkSubWin() { 
  if(subwin != null && subwin != "") {
   // 子画面が閉じたか否か
   var ret = subwin.closed;
   // 子画面が閉じてない場合は子画面にフォーカス
   if(ret == false) { 
    subwin.focus();
   } 
  } 
 } 

***参考情報 [#l4d16d34]
-ASP.netでモーダルダイアログ画面で~
ポストバックした際に別画面が表示されるのをふせぐ~
http://megadeth.txt-nifty.com/blog/2007/12/aspnet_8d2f.html

-showModalDialogの子画面で画面遷移  蒼い月~
http://www.aoituki.jp/top/2011/20110912.html

-ASP.NET でモーダルダイアログボックス - アジャイルプログラマの日常~
http://d.hatena.ne.jp/fyts/20071107/asp

-子画面でのpostbackで他の画面が開いてしまう - Insider.NET - @IT~
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20782&forum=7

-showModalDialogの遷移時に新規ウィンドウが開いてしまう問題 - @IT~
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=28&topic=22195

**IE10でダイアログのサイズ指定が出来ない。 [#zb6941d0]
Windows 7 + Internet Explorer 10 で、~
frameset を含むページをshowModalDialog で表示すると、~
幅・高さの指定が無視され、ダイアログの表示が小さくなってしまう。

-In IE10, showModalDialog a frameset page,the parameters dialogHeight\dialogWidth is ignored~
http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/f98f0a61-7999-4cdb-8588-cc908f612a60/

***解決策 [#nf844888]
frameset を含むページに、
 <meta http-equiv="x-ua-compatible" content="IE=6">

を追加する。

IE=6, IE=7 では意図した大きさになったが、~
IE=8 では、やはり幅・高さが無視され、小さくなってしまったとのこと。~
IE=9, IE=EmulateIEx は不明。~

*描画の問題 [#nea3ff1f]
**settimeout化 [#ve892bf5]
javascript - IE9 Alert() now blocks range.select from displaying selected text - Stack Overflow~
http://stackoverflow.com/questions/13021294/ie9-alert-now-blocks-range-select-from-displaying-selected-text

IEのバージョンが変更され、
-描画タイミング
-JavaScriptの実行タイミング

が変わって、問題となるケースがあるようです。

対応方法としては、settimeout化が挙げられますが、
-IE6側の動作を変えてしまう。
-IE9側も厳密には意図する動作に合わせられない。

ため、機械的にsettimeout化すれば良いという訳ではない様です。


*ActiveX [#t219f9f8]

**Win7、IE9、VBCOMの問題 [#dfb0a105]
ActiveXのダイアログでボタンを押下したあとにフリーズしてしまう。

インターネット上の情報から、

-[MS11-050] Internet Explorer 用の~
累積的なセキュリティ更新プログラム (2011年6月14日)~
http://support.microsoft.com/kb/2530548

-IE9:VB6 ActiveX コントロールによって起動される~
モーダル ダイアログ ボックスを閉じると、web ページが応答を停止します。~
http://support.microsoft.com/kb/2534409/ja

を適用しても問題は解決しなかった。

そこで、

>[Windows 7(x64) IE9]~
IE9でVB6のActiveXコントロールのページの~
“ファイルを開く”ダイアログを表示した後、~
ダイアログを閉じたタイミングでIEがフリーズします。 - マイクロソフト コミュニティ~
http://answers.microsoft.com/ja-jp/ie/forum/ie9-windows_7/windows-7x64/92af4d53-5051-4ad0-a098-bff05cbd53c7

を参考にして、

>Reg:[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\New Windows]~
にDetourDialogs という文字列値を追加し、値を no と設定した所、

正常に動作するようになった。

ただし、DetourDialogs はサポート対象外の方法~
であるとのこと(プレミア・サポートで確認済み)

*ダウンロード全般 [#d1bd5db8]
PDF、CSV、Officeなど、詳しくは、~
こちら([[ダウンロードのいろいろ]])を参考にしてください。

*その他 [#s49c7cfa]

**IE:タブのプロセス分割 [#b482549e]
IE8からタブ毎にプロセス分割されるようになりました。~
Session(Cookie)はタブ(プロセス)間で共有されます。~
このため、以前のバージョンで可能であった別プロセスとして起動し、~
別のユーザとしてログインする様なことがデフォルトでできなくなりました。~

この動作は変更可能です(「IE8 Session」で検索すると情報多数ヒット)。~

***解決策 [#d34620e7]
IE8 のプロセスモデルについて~
 - Japan IE Support Team Blog - Site Home - TechNet Blogs~
  2. IE8 で別々のウィンドウでもセッション情報が共有されてしまう。~
http://blogs.technet.com/b/jpieblog/archive/2010/05/10/3331472.aspx~

+TabProcGrowth=0 に設定することにより、~
IE8 の LCIE 機能が無効となり、プロセス間での~
セッションを共有しない動作となります。
+FrameMerging=0  に設定することにより、~
++IE8 のプロセスが異なる場合に~
セッション情報を共有しない動作となります。
++プロセス間でのセッション情報は共有されなくなりますが、~
IE8 のプロセスの分離動作  (LICE) は引き続き有効となります。
+レジストリのキーと種類は、上記のTabProcGrowth と同じです。
--キー : HKLM (or HKCU) \Software\Microsoft\Internet Explorer\Main
--名前 : TabProcGrowth
--種類 : REG_DWORD
+IE8 の [ファイル] - [新規セッション] を選択することで、~
セッション情報を共有しないウィンドウを開くことが可能です。
+コマンドプロンプトやスクリプトで、"-NoFrameMerging” を引数で起動~
することで、セッション情報を引き継がず IE を起動することができます。~
iexplore.exe -NoFrameMerging <http://www.microsoft.com/>

**IE10で"__doPostBack" 実行エラー [#ld442289]
Windows 7 + Internet Explorer 10 で、~
ASP.NET の JavaScript 関数である"__doPostBack" 実行時にエラーとなる

-Bug and Fix: ASP.NET fails to detect IE10 causing _doPostBack is undefined JavaScript error or maintain FF5 scrollbar position - Scott Hanselman~
http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

***原因 [#y941f89f]
ASP.NET 標準のブラウザーファイル (ie.browser) には、

 <browser id="IE6Plus" parentID="IE">
   <identification>
     <capability name="majorversion" match="^[6-9]|\d{2,}$" />
   </identification>
     (中略)
 </browser>
 
のように「IEx ~ IE9 までの定義」しかなく、IE10 に関する定義がないため、~
IE10 でアクセスした場合は「その他のブラウザー」のような扱いになる
 
***解決策 [#f858ecd1]
マイクロソフト提供の HotFix を Web サーバに適用する~
(上記、参考 URL から HotFix ダウンロード元サイトに移動可能)

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS