0

IE 9(9.0.8112.16421)で、iframeJavaScriptを使用してvia javascriptの場所を変更するiframe.setAttribute( 'src', 'http://..' )と、javascriptコンソールでエラーがスローされるという奇妙な動作が見られます。

最初は大文字と小文字が関係しているように見えますが、紛らわしいことに、大文字を使用した他のURLを試してみたところ、うまくいきました。

以下のJavaScriptを使用する場合:

frame.setAttribute( 'src', 'http://tidevwls03:7161/OpenTwinsApp/app/index.jsf' );

または..

frame.src = 'http://tidevwls03:7161/OpenTwinsApp/app/index.jsf';

または、ハードコードされたHTMLです。

<iframe src="http://tidevwls03:7161/OpenTwinsApp/app/index.jsf"/>

次に、次のエラーが発生します。

SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5) 
core.js, line 1 character 192310

不思議なことに、OpenTwinsAppパーツをopentwinsapp、myapp、またはMyAppに変更すると、期待どおりに機能します。URLhttp://www.google.com:80/OpenTwinsApp/app/index.jsfも機能しているようです。

回避策として; パラメータとしてURLを提供することは問題ないように思われるため、JavaScriptの新しいページを導入することを検討しています。理想的ではありませんが、少なくとも機能します。

他に使用できる回避策はありますか?

IE 9のバグのようですか?いつものように、Chromeは完全に機能します。

更新:

  • HTMLのみを使用してiframesrcを設定しようとしましたが、同じエラーメッセージが表示されました。
  • 単純に実行する転送ページを導入しようとしましたdocument.location.href = 'http://tidevwls03:7161/OpenTwinsApp/app/index.jsf';が、これも同じエラーでロードに失敗します。
  • 短縮URLhttp://goo.gl/Sy4pkを使用してページにアクセスしようとしましたが、同じエラーが発生しました。
4

1 に答える 1

3

問題はIE9標準モードが原因であるように見えました。Quirksモードに変更すると、IFrameコンテンツが読み込まれます。私の例では、ツールチップが入力要素とiframeでも機能するように、IE8標準モードに変更したいと思いました。

次のリンクは、ブラウザーをIE8標準モードにするために何をする必要があるかを理解するのに特に役立ちました-Doctypeを使用したブラウザーモードのアクティブ化

最後に、のDoctypeを<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">追加<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">してから、IEブラウザーでIE8をエミュレートするように追加しました。

于 2012-08-13T15:38:56.943 に答える