- 題名: スクリプトエラーの原因と対策
- 日時: 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で開く場合では、何か違いがあるのでしょうか?
原因と対策について、お分かりの方がいらっしゃいましたら、
ご教示頂けませんか?
よろしくお願い致します。