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