をJavaScriptの変数をグローバルスコープにアクセスするには、私はGetGlobalVariable()
と呼ばれるここに含まカスタムメソッドを使用していました。 (。それはJuan's answerからDocument.InvokeScript
を使用しています1)
のは、このようなグローバルスコープで作成したJavaScript変数を言ってみましょう:
var foo = "bar";
var person = {};
var person.name = "Bob";
次に、あなたがそうのようなC#GetGlobalVariable()
方法を使用して、これらの値にアクセスすることができます。 (あなたは変数が移入された場合に、継続的にチェックするためにtimerを設定する必要があるかもしれません。)
var foo = GetGlobalVariable(webBrowser, "foo");
var name = GetGlobalVariable(webBrowser, "person.name");
ここGetGlobalVariable()
方法があります。変数参照の各部分をチェックして例外を回避することに注意してください。
private object GetGlobalVariable(WebBrowser browser, string variable)
{
string[] variablePath = variable.Split('.');
int i = 0;
object result = null;
string variableName = "window";
while (i < variablePath.Length)
{
variableName = variableName + "." + variablePath[i];
result = browser.Document.InvokeScript("eval", new object[] { variableName });
if (result == null)
{
return result;
}
i++;
}
return result;
}
WebBrowserコントロールがWebページを読み込んだ後、どうすれば私のC#アプリケーションの内部からmyVariableにアクセスできますか? – AllStar11
これはあなたが元に戻って元の質問を編集したいと思うかもしれない質問です。それはあまり明確ではありません。 –