2013-02-03 19 views
7

私の2人の友人が、WebBrowserコントロールの使用に依存している私が取り組んでいるプロジェクトをテストしており、WebBrowserコントロールができない一定のシナリオに遭遇しました含まれているWebページ上のJavaScriptを実行します。それを絞り込んさのために .NET WebBrowserコントロールでJavaScriptが実行されない

は私だけWebBrowserコントロールを含む新しいWindowsフォームプロジェクトを作成し、次のページに移動しようとします:私の友人の http://javatester.org/javascript.html

結果、コンピュータが以下だった(クリック)拡大:JS固有のコードを呼び出すようにしようとしたとき

http://s18.postimage.org/ax5qmw2th/screenshot.jpg

あなたが見ることができるように、それはあなたがJS無効または有効になって、あなた」で、Webブラウザで表示代わりにあれば、何でもいいがレンダリングされません。何かが見えます。

JavaScriptの設定が有効になっているレジストリキー(https://gist.github.com/4699943を参照)をエクスポートし、各キーの1400の値が私が使用しているのと同じ設定になっています。次のように

全体のテストプロジェクトのためのコードは次のとおりです。

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Shown(object sender, EventArgs e) 
     { 
      this.webBrowser1.Navigate("http://javatester.org/javascript.html"); 
     } 
    } 
} 

新しいプロジェクトがしかし1つが、4.5フレームワーク(私のマシン上または彼のどちらか)それが動作をターゲットにし、このコードを使用して作成された場合4.0以下で作成した場合、上記の結果が発生します。私はこれが偶然であるのか、それが本当に問題/解決策と関係しているのかどうかはわかりません。

Internet Explorerでこのページに移動しても問題はなく、JavaScriptが有効であることが検出された場合、この問題はこのテストアプリケーションとその一部であるメインプロジェクトにのみ存在します。

私はこれを理解しようとして2ヶ月を過ごしましたが、それでも解決できません。

+1

フレームワークのバージョンが問題であるとは思わない。私は3.5でJavaScriptをうまく動作させるプロジェクトを行った。標準の 'WebBrowser'コントロールの他の問題のため、私は多くのプロジェクトでWebKit.net(WebKitはChromeとSafariのレイアウトエンジンです)を使用するように移動しました。それは素晴らしいツールであり、実際に標準コントロールと似ているようにしました。もし私があなたなら私は少なくともそれをチェックするだろう。 [WebKit.net](http://webkitdotnet.sourceforge.net) –

+0

@LeonNewswanger - これは少し話題ですが、以前はWebKitに切り替えることを検討しましたが、プロジェクトの今後の要件のいくつかは、 ObjectForScriptingプロパティを使用してJavaScriptからアセンブリにコールバックすることができます。私はWebKitでそのようなものを見つけることができませんでした。あなたはこれまでWebKitでこれを見つけたことがありますか? – rastating

+0

私は正直に見たことがない、申し訳ありません。私はそれが本当にあなたの答えではないことに気づいています。そういうわけで私はコメントとして投稿しました。あなたの他の要件を知らなかったので、あなたの問題を解決するのに役立つかもしれないと思いました。 –

答えて

0

私のテストでは、.NET 4のWebBrowserはIE 7.0のWebブラウザエージェント文字列を報告します。したがって、IE7でJavaScriptが正しく動作することを確認してください。

-1

webbrowserのcontrol.Document Textプロパティを使用している場合、スクリプトはロードされません。これはNavigateメソッドで完璧に機能します。私は第三者からHTMLを取得するように動作するドキュメントのテキストプロパティが必要です。私はそれからHTMLファイルを作成し、それを通常のIEブラウザで開くと、同じHTMLコンテンツは完全に正常に動作します。 Webブラウザコントロールはバグです。

+1

この回答を詳しく説明するか、詳細な説明やドキュメントを用意してください。 – ryanyuyu

関連する問題