<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<html><!-- InstanceBegin template="/Templates/base.dwt" codeOutsideHTMLIsLocked="false" -->\r
+<html xmlns:v="urn:schemas-microsoft-com:vml"><!-- InstanceBegin template="/Templates/base.dwt" codeOutsideHTMLIsLocked="false" -->\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
</head>\r
\r
<body>\r
- <!--[if lt IE 9]>\r
- <script type="text/javascript">\r
- (function(){\r
- var b = document.body || (function(){document.write('<body>');return document.body;})(),\r
- c = b.className || '',\r
- x = document.createElement('div');\r
- b.appendChild(x);\r
- x.style.cssText = 'width:1px;height:1px;filter:progid:DXImageTransform.Microsoft.Shadow()';\r
- b.className += [ c !== '' ? ' ' : c, 'pettanr-ActiveX-', x.offsetHeight > 1 ? 'enabled' : 'disabled'].join( '');\r
- b.removeChild(x);\r
- })();\r
- </script>\r
- <![endif]-->\r
-\r
<div id="general-content">\r
<div id="outer-wrapper">\r
\r
<div id="inner-wrapper" class="base-content-width">\r
<!-- InstanceBeginEditable name="main_content" -->\r
<div id="main">\r
+ <div id="breadcrumb"><a href="index.html">テスト インデックス</a> > ActiveX</div>\r
<h2>ActiveX が有効か? を js から調べる</h2>\r
<p>このページは ie8 以下用の テストページです.</p>\r
<p>\r
- ActiveX が有効か? 調べるために以下のような script を使用していましたが、<strong>ie の設定によっては警告が出てしまうためよろしくないみたいです.</strong>(ie7 で遭遇)\r
+ ActiveX が有効か? 調べるために以下のような script を使用していましたが、<code>new ActiveXObject</code> の辺りで <strong>ie の設定によっては警告が出てしまうためよろしくないみたいです.</strong>(ie7 で遭遇)\r
</p>\r
<p>ActiveX が使えなくても他の手段でユーザーのサポートは行える(はずな)ので、警告を表示しない方法で ActiveX が有効か? 取得したいところです.</p>\r
<pre><code>\r
</script>\r
<![endif]-->\r
</code></pre>\r
- <p>ちなみに上記のコードは <body> の直下に書かれていて、domReady イベントすら待たずに、即座にActiveX の有無を調べて <body> にクラスをセットします.</p>\r
- <p>基本的に スクリプトは html の最後の方に書いて、domReady イベント後に動作するようにしているので、これは異例です.</p>\r
- <p>ActiveX が有効時・無効時で css 指定から読み込まれる画像が異なる場合に、不要な画像へのアクセスを避けるためにこのようなタイミングにしています.(でも実は未検証)</p>\r
+ <p>css の書き方を見直して ie については ActiveX のチェックが済むまで画像を読み込まないようにした.これにより domReady 前のチェックは取りやめ、domReady 後に行うことで十分になった.併せて ie 専用となるコードを html から減らせた.</p>\r
+ <p><del>ちなみに上記のコードは <body> の直下に書かれていて、domReady イベントすら待たずに、即座にActiveX の有無を調べて <body> にクラスをセットします.</del></p>\r
+ <p><del>基本的に スクリプトは html の最後の方に書いて、domReady イベント後に動作するようにしているので、これは異例です.</del></p>\r
+ <p><del>ActiveX が有効時・無効時で css 指定から読み込まれる画像が異なる場合に、不要な画像へのアクセスを避けるためにこのようなタイミングにしています.(でも実は未検証)</del></p>\r
\r
<h3>filter 指定による html 要素のサイズ変化を調べる</h3>\r
<div id="box-container" style="height:200px;position:relative;">\r
</code></pre>\r
\r
<h3>以上を元にした ActiveX チェック用のスクリプト</h3>\r
+ <p>上記の理由のため以下のコードは ぺったんクライアントでは現在、使われていない.以下のコードを元にしたものが pettanr.ua.ACTIVEX で使われていて ActiveX が有効か? 判定を行っている.</p>\r
<pre><code>\r
<!--[if lt IE 9]>\r
<script type="text/javascript">\r
c = b.className || '',\r
x = document.createElement('div');\r
b.appendChild(x);\r
- x.style.cssText = 'width:1px;height:1px;filter:progid:DXImageTransform.Microsoft.Shadow()';\r
+ x.style.cssText = 'width:1px;height:1px;line-height:1px;filter:progid:DXImageTransform.Microsoft.Shadow()';\r
b.className += [ c !== '' ? ' ' : c, 'pettanr-ActiveX-', x.offsetHeight > 1 ? 'enabled' : 'disabled'].join( '');\r
b.removeChild(x);\r
})();\r
\r
<h3>付録</h3>\r
<h4>ActiveX が切られている場合の影響</h4>\r
- <p>ActiveX ã\81\8cå\88\87ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 filter æ\8c\87å®\9aã\81«ã\82\88ã\82\8b css3 ç\9b¸å½\93ã\81®ã\83\87ã\82¶ã\82¤ã\83³ã\81\8c使ã\81\88ã\81ªã\81\8fã\81ªã\82\8bã\81»ã\81\8bã\81«ã\80\81ActiveX ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¨ã\81\97ã\81¦æ\8f\90ä¾\9bã\81\95ã\82\8cã\81¦ã\81\84る Flash が使えなくなる.これにより pettanR にとって重要な機能、画像の反転や ie6 以下への pngfix が難しくなる.</p>\r
+ <p>ActiveX ã\81\8cå\88\87ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 filter æ\8c\87å®\9aã\81«ã\82\88ã\82\8b css3 ç\9b¸å½\93ã\81®ã\83\87ã\82¶ã\82¤ã\83³ã\81\8c使ã\81\88ã\81ªã\81\8fã\81ªã\82\8bã\81»ã\81\8bã\81«ã\80\81ActiveX ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¨ã\81\97ã\81¦æ\8f\90ä¾\9bã\81\95ã\82\8cる Flash が使えなくなる.これにより pettanR にとって重要な機能、画像の反転や ie6 以下への pngfix が難しくなる.</p>\r
<p>さらに、ie6 以下では ActiveX オブジェクトとして提供される XmlHttpRequest も使えなくなる.( この場合サーバとの通信手段は、動的に生成したフォーム部品によるもの などに限られてくる )</p>\r
- <p>Silverlight や VML がどうなるか?は未チェック.(おそらく VML は ActiveX と無関係、Silverlight も同様なら Silverlight の重要度が少し上がる)</p>\r
+ <p><del>Silverlight や VML がどうなるか?は不勉強.(おそらく VML は ActiveX と無関係、Silverlight も同様なら Silverlight の重要度が少し上がる)</del></p>\r
+ <p>ActiveX が切られている場合、Silverlight や VML も使えなくなり かなり難しい状況になる.サーバーの画像変換機能の助けを借りてなんとか表示している状態になってしまう.</p>\r
+ <p>VBscript に使える機能ないかな??</p>\r
<h4>【一応】js が有効だからといって ActiveX も有効とは限らない</h4>\r
<p>ActiveX は js と同時に切られることが多いが、これは ie のデフォルトのセキュリティ設定のためで、ActiveX と js はそれぞれ独立して on / off ができる.</p>\r
- <p>そのため js が有効だからといって ActiveX も有効とは限らない.</p> \r
+ <p>そのため js が有効だからといって ActiveX も有効とは限らない.</p> \r
+ <h3>追記 2012/03/24</h3>\r
+ <p>ie6 でうまく動かなかったため修正.ie6~8 のデフォルト設定が localhost では ActiveX が切になっているようで気付いた.</p>\r
+ <pre><code>\r
+x.style.cssText = 'width:1px;height:1px;filter:progid:DXImageTransform.Microsoft.Shadow()';\r
+↓\r
+x.style.cssText = 'width:1px;height:1px;<ins>line-height:1px;</ins>filter:progid:DXImageTransform.Microsoft.Shadow()';\r
+ </code></pre>\r
</div>\r
<!-- InstanceEndEditable -->\r
</div>\r
</div>\r
</div>\r
<div id="copyright">Copyright (c) 2011-2012 pettanR team, some rights reserved.</div>\r
- </div><!-- #EndLibraryItem --></div>\r
+ </div><!-- #EndLibraryItem -->\r
+ </div>\r
+ <script type="text/javascript">\r
+ var has_server_support = false;\r
+ </script>\r
<script type="text/javascript" src="../javascripts/common.js"></script>\r
<!-- InstanceBeginEditable name="script" -->\r
<script type="text/javascript">\r