私は .NET を に置き換える過程にあり、WebBrowser私が書いているラッパーで実装する方法がわからない でWebKit.NET使用している機能の 1 つは、DOM を渡す機能です。 JavaScript および C# コードとの間の要素。WebBrowserWebKit
a では、 an のプロパティをパラメーターとしてWebBrowser呼び出しInvokeScriptて渡すだけで、JavaScript 関数が要素を取得します。同様に、JavaScript から C# に要素を渡すことができ、C# コードはオブジェクトを取得します。DomElementHtmlElementDomElement
WebKit私が知る限り、私はこれを行うことができません。InvokeStriptMethodメソッドは壊れていますが、壊れていStringByEvaluatingJavaScriptFromStringないため、現在のドキュメントにスクリプトを挿入して、後でいつでも呼び出すことができます。
これらのドキュメントは自分で作成したドキュメントではないことに注意してください。そのため、すべての要素に ID を割り当てるようなことはできません。これは Web スクレーパーであり、ドキュメントの要素をできるだけいじらないようにする必要があります。
おそらく機能するハックの 1 つは、要素に一時 ID を割り当て、古い ID をバックアップしておくことです。次に、GetElementByIdJavaScript または C# から呼び出して要素を取得し、古い要素の ID を再割り当てします。GetAttribute('id')問題は、ID が の場合にWebKitが空の文字列を返すundefinedため、C# コードで ID が空の文字列であるかundefined、現在の Web ページのスクリプトが ID に依存しているかを知る方法がないことです。 ID を空の文字列にundefined設定すると、javascript が台無しになる可能性があります。
誰もがより良いアイデアを持っていますか、それとも私が使用できる他のWebKit方法はありますか?