- 題名: スクリプトエラーの原因と対策
- 日時: 2011/12/22 2:32:51
- ID: 29513
- この記事の返信元:
- (なし)
- この記事への返信:
- [29516] Re[1]: スクリプトエラーの原因と対策2011/12/23 6:51:44
- ツリーを表示
2011/12/23(Fri) 06:53:12 編集(投稿者) ■No29513に返信(chikaさんの記事) スクリプトエラーは添付した画像と同じものですか? main.jsの380行目は以下です。 },});return false;},loadSearchResults:function(keyword,al) 3文字目ですので,}の解釈でエラーになっているのでないかと思い ます。 FirefoxやIE9で表示したときにエラーが発生しないのはJavaScript の解釈の仕方が違うのだろうと思います。 以下のコードを追加してWebbrowserコントロールで当該ページを表 示したときのdocumentModeを確認したところ、7と出力されました。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click WebBrowser1.Navigate("javascript:alert(window.document.documentMode);") End Sub IE9で当該ページを表示してjavascript:alert(window.document. documentMode);のブックマークレットでdocumentModeを確認したと ころ、8と表示されました。WebBrowserコントロールとIE9ではdocu mentModeが違います。 WebBrowserコントロールやIE9のレンダリングエンジンであるTride ntはdocumentModeによってJavaScriptの解釈を変えるのではないか と思います。原因はJavaScriptで,}と記述されていること。そして documentModeが7であることの2つだと思います。 対策は思いついたところでは、エラーを抑止するやり方とdocument Modeを変えるやり方です。HtmlWindow.Errorイベントのハンドラで HtmlElementErrorEventArgs.HandledプロパティにTrueをセットす ることでエラーを抑止することができます。documentModeを変える やり方についてはレジストリにアプリケーションを登録することで 可能のようですが、動的に変える方法はわかりません。 レジストリのキー名は以下です。 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 値の名前は実行するファイル名です。値のデータはリンク先を参照 ください。 Internet Feature Controls (B..C) http://msdn.microsoft.com/en-us/library/ee330730(VS.85).aspx#browser_emulation
分類:[.NET]
お世話になります。
VB2008+Vistaで開発中です。
スクリプトエラーが発生し、原因と対策が分からず、投稿しました。
Private Sub Form1_Load(ByVal sender As System.Object,・・・
wb1.Navigate("https://delicious.com/register")
End Sub
上記コードでWebBrowserを開こうとすると、
「識別子、文字列または数がありません」
というスクリプトエラーが発生します。
しかし、IE9やFireFox3.6で、直接URLを打った場合は、
スクリプトエラーが発生しません。
WebBrowserとIEで開く場合では、何か違いがあるのでしょうか?
原因と対策について、お分かりの方がいらっしゃいましたら、
ご教示頂けませんか?
よろしくお願い致します。