Kinopyo's Blog

I love this game.

Archive for the ‘IE’ Category

IE6でSSL(https)に接続する時、src属性なしのiframeを使うとセキュリティの警告が出る

2010年04月27日

現象

IE6を使ってSSL(https)経由で接続する時に以下の警告が出るなら

iframeのsrc属性をまずチェックしてください。

security-info


このページにはセキュリティで保護されている項目と保護されていない項目が含まれています。

ダメな書き方

<iframe />
<iframe src="" />

解決策

src属性にちゃんと値を設定するか、javascriptでfalseを指定する

<iframe src="/dummy.html" />
<iframe srec="javascript:false" />

存在しないファイルを指定するとサーバ側のログにエラーが出るかもしれないので、

設定する場合は実際存在するファイルを設定してください。

IEでJSPを開こうとするとダウンロードのプロンプトダイアログが出る

2009年12月10日

秀丸でjspと関連付けたら、IEでJSPを開こうとするとダウンロードのプロンプトダイアログが出る。

回避方法

関連付けを決断!

  • エクスプローラの「ツール→フォルダ オプション→ファイルの種類→拡張子」にJSPを捜し、「詳細設定」を開いてopenアクションを削除。
  • あるいはファイルの種類のタブの中の「削除」ボタンで削除

JSPファイルの関連付け

秀丸が悪いのか、何が悪いのかは調べてないです。

とにかくこれで一応解決。

IE8でbackground-colorが白とその値がnullとの表示が微妙に違う

2009年11月24日

現象

f:id:kinopyo:20091124235949j:image

まず画像を見てみましょう。

最初の二つ白い背景のエリアに注目してください。

一番目は背景色を白い色(#FFFFFF)に設定したもので、

二番目が背景色をnullに設定したものです。

白い色に明確に設定したほうのborderの左と上の表示が少し違ってます。


またIE8の開発ツール(F12で呼ばれる、Firebugと似たデバッグツール)で見ても

background-colorが#ffffffになってる以外に、何の余計なスタイルもありませんでした。

なのでやはりbackground-colorが指定してないものと#ffffffに指定したものには差異が存在してます。


サンプルコード

<div>
<input id="foo" type="text" />
<input id="bar" type="text" />
</div>
<div>
<input id="hoge" class="gray" type="text" />
<input class="gray" type="text" />
</div>
$(document).ready(function(){
  // 元の背景色を保持
var original = $("#foo").css("background-color");
alert(original);	// output is "ffffff"
  // 元の背景色を再設定、値は同じはず
$("#foo").css("background-color",original);
// 他の背景色はこんな現象がないみたい
// あるとしても発見しづらい	
  var hogeColor = $("#hoge").css("background-color");
alert(hogeColor);	// output is "gray"
$("#hoge").css("background-color",hogeColor);
});




 

IEのActiveXコントロールに関する警告を非表示にするには

2009年11月18日

開発においてローカルでいろいろテストすることが多いでしょう。

その時ブラウザを開くと「セキュリティ保護のため、このコンピューターにアクセスする可能性のあるスクリプトやActiveXコントロールを実行しないよう、IEで制限されています。オプションを表示するには、ここをクリックしてください」という警告がそのたびに出て、気分が悪くなっちゃいます。IEの[セキュリティ]タブをいじってもファイルはローカルなので、効きません。


解決方法

  • [マイコンピュータ内のファイルでのアクティブコンテンツの実行を許可する*]をチェックしIEを再起動(*がついてるので再起動は絶対必要とされている)

f:id:kinopyo:20091117012539j:image:right

f:id:kinopyo:20091117012540j:image

  • 「スクリプトを実行しても安全とマークされているActiveXコントロールのスクリプトの許可」をチェック

f:id:kinopyo:20091117012541j:image

バージョン情報

  • OS: Windows XP
  • IE: IE8


参考サイト:How to disable "ActiveX Control May Be Unsafe" popup – Stack Overflow

クライアント側のActiveXが有効か無効かを検出するJavaScript

2009年11月17日

知っておくべきこと

  • ActiveXはIE専用のものと理解してよい、Firefoxなどでは存在しない
  • new ActiveXObject(“Microsoft.XMLHTTP”)でIEのXMLHttpRequestが生成される
    • IE のバージョンによっては、”Microsoft.XMLHTTP”の代わりにこれらも使用できるそうです:
    • “Msxml2.XMLHTTP.5.0″
    • “Msxml2.XMLHTTP.4.0″
    • “Msxml2.XMLHTTP.3.0″
    • “Msxml2.XMLHTTP”
  • もし生成できればActiveXコントロールは有効になっている


検出ソースコード

// ブラウザがIEの場合
if (window.ActiveXObject) {
try {
//IEのXMLHttpRequestオブジェクトを試しに生成
var xhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert('ActiveXコントロールは無効になっています');
}
}


参考サイト

動画をHTMLに埋め込むヒント – faireal.net

IEセキュリティにマイコンピュータゾーンを追加する方法

2009年11月16日

概要

ローカルのファイルを参照する際のセキュリティを変更したとします。

IEの[インターネット オプション] ダイアログ ボックスの [セキュリティ] タブでは

ローカルのマイコンピュータのセキュリティゾーンがデフォルトでは非表示になっています。

それを表示させるにはレジストリを編集する必要があります。

動作環境

以下の環境で動作確認済みです。

その他の環境についてはマイクロソフトのサポートヘルプを参照してください。

  • OS: Win XP
  • IE: IE8

方法

警告 : レジストリ エディタの使い方を誤ると、深刻な問題が発生することがあります。


[インターネット オプション] ダイアログ ボックスの [セキュリティ] タブにマイ コンピュータのセキュリティ ゾーンを表示するかどうかは、次のレジストリ キー内にある Flags 値によって設定できます。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0

Flags 値は DWORD 値です。Flags 値のデータ値を 47 (16 進) に設定すると、マイ コンピュータのセキュリティゾーンが表示されるようになります。Flags 値のデータ値を 21 (16 進) に設定すると、マイ コンピュータのセキュリティゾーンが非表示になります。

http://support.microsoft.com/kb/315933

IE6でjQueryを使う時のエラー:selectにoption生成の不具合

2009年11月09日

環境f:id:kinopyo:20091110011109j:image:right

  • IE6
  • jQuery1.3.2

現象

IE7、IE8、Firefox上全部OKのアプリが

なぜかIE6ではエラーが頻発しました。

エラーの詳細もないので、原因がはっきりわかりません。


ソースは特に変な作り方をしてないと思うので、

やはりIE6が主な原因と判断しググってみました。

調査結果

IE6でselect boxに

その追加した値を.valで設定しようとすると上記のエラーが発生します。

(設定する値が追加した値以外の場合、正常に設定できます)

今回のアプリではselectボックスは静的にHTMLで書いて、

jQueryでoptionをどんどんappendしてました。

やはりこの辺が怪しかったですね。


回避策としてあげられるのは.valを設定する前に.width()を一回実行することです。

信じられないぐらい、本当になおりました。

setTimeout(function () {}, 0); も回避策の一つとの選択肢もあったのですが、

なぜかこれは効きませんでした。

以下個人感想

IE6のばかばかしい動きが元凶なので、詳しく追求する気はないです。

ほかにもjQueryを使うときに注意すべきものがいっぱいあるようです。

まあ、またエラーなんか起きたらそのときまた検索すればって思います。


ウェブアプリ開発者はIE6~IE8、Firefoxなどいろいろなブラウザにも注意しながら

開発するしかないことがすごく嫌です。

この前FirefoxがやっとIE6を市場シェアを抜けて一位になった記事がありました。

(Firefox > IE6 > IE7 > IE8の感じかな、トータルではもちろIE全体がまだトップ)

IE6なんかもう早く下がってほしい。


なので、ブラウザに気にしないFlex開発に興味を持ち、今勉強中です。

そこら辺の感想はまた別途で記事書きます。


ちなみに、Google分析で私のブログを見る平均時間は44秒です。

内容的にこんなに駄目なんですか。。?

44秒、、短すぎ、、

参考になったサイト

jQueryでoption要素を追加した際の諸問題

jQueryを使うときに気をつけるべき8のポイント

Get Adobe Flash playerPlugin by wpburn.com wordpress themes