2012-04-21 4 views
4

WebBrowserWebKit.NETに置き換え、WebBrowserで使用していた機能の1つを、ラッパー私はWebKitの周りに書いていますが、JavaScript要素とC#コードの間でDOM要素を渡すことができます。 WebBrowserC#とJavaScriptの間の要素を渡す

あなただけInvokeScriptを呼び出し、パラメータとしてHtmlElementDomElementプロパティを渡すと、JavaScript関数は、要素になるだろうと思います。同様に、JavaScriptからC#に要素を渡すことができ、C#コードはDomElementオブジェクトを取得します。

WebKit私が知る限り、これはできません。 InvokeStriptMethodメソッドは壊れていますが、StringByEvaluatingJavaScriptFromStringはありません。スクリプトを現在のドキュメントに挿入し、後で呼び出すことができます。

これらのドキュメントは自分の作成したドキュメントではないため、IDをすべての要素に割り当てるなどの作業はできません。これはWebスクレーパーであり、できるだけ文書の要素をぶつけないようにする必要があります。

一時的なIDを要素に割り当て、古いIDをバックアップしておくと、JavaScriptまたはC#のいずれかからGetElementById呼び出しを実行して元の要素のIDを再割り当てできます。問題はWebKitのGetAttribute('id')がIDがundefinedのときは空の文字列を返すため、C#コードでIDが空文字列かundefinedかどうかを知る方法がなく、現在のWebページのスクリプトが依存する可能性があるということです何らかの理由でIDがundefinedであるため、IDを空の文字列に設定するとjavascriptが台無しになる可能性があります。

誰かが良いアイデアを持っているのですか、他の方法がありますか?WebKit私が使用できる方法はありますか?

+0

質問は、コード例を追加、あまりにも曖昧です。 –

答えて

0

あなたはhttps://github.com/douglascrockford/JSON-js このライブラリを使用して、オブジェクトが現在の文字列 であり、あなたはあなたの文字列を渡すことができますオブジェクト

var your_object = JSON.parse(json_text); 

を作るためにこれを行うことができます

var json_text = JSON.stringify(your_object, null, 2); 

このコードを使用することができますあなたの文字列をjavascriptからc sharpに変換します。あなたはfastjasonと

var o = fastJSON.JSON.Instance.ToObject<List<Retclass>>(s); // return a generic list 

string str = fastJSON.JSON.Instance.ToJSON(obj, 
       new fastJSON.JSONParamters { EnableAnonymousTypes = true }); // using the parameters 

を使用することができますCSHARPで

あなたは

JSON(JavaScriptオブジェクト表記)JSON

を使用して軽量なデータ交換であることを行うことができます フォーマット。人間が読み書きするのは簡単です。 マシンが解析して生成するのは簡単です。これは、 JavaScriptプログラミング言語、標準ECMA-262第3版 - 1999年12月のサブセットに基づいています。JSONは完全に言語 のテキスト形式ですが、C、C++、C#、Java、JavaScript、 Perl、Pythonなど多くの言語のCファミリ のプログラマーには慣れ親しんだ規約を使用しています。これらのプロパティは、JSONを理想的な データ交換言語にします。

http://www.json.org/

http://www.codeproject.com/Articles/159450/fastJSON

+0

この回答はあまりにもあいまいです。あなたはJSONを使ってそれをどのようにしますか? –

+0

あなたはこれを使用することができます – rodolfoprado

+0

私はあなたのせいではないと思う、質問があまりにもあいまいです。 –

関連する問題