1
我有一個Winforms應用程序,它具有ChromiumWebBrowser控件和一些基本的Windows控件。我希望能夠點擊一個按鈕,調用JavaScript來獲取瀏覽器中的文本框的值,並將返回的值複製到winforms應用程序中的文本框中。這裏是我的代碼:使用javascript從CefSharp瀏覽器獲取文本框的值
string script = "(function() {return document.getElementById('Email');})();";
string returnValue = "";
var task = browser.EvaluateScriptAsync(script, new { });
await task.ContinueWith(t =>
{
if (!t.IsFaulted)
{
var response = t.Result;
if (response.Success && response.Result != null)
{
returnValue = (string)response.Result;
}
}
});
txtTarget.Text = returnValue;
說回來然而,結果卻「{}」。我在Chrome中加載了相同的網頁,並在開發工具中執行了相同的JavaScript,並獲得了預期的文本框值。
我看到的演示有示例代碼,只是「返回1 + 1;」,當我試圖獲得值「2」返回而不是「{}」。有趣的是,當我嘗試
string script = "(function() {return 'hello';})()";
我仍然收到「{}」,就好像這不適用於字符串。
我一直在這裏撓頭,一直未能弄清楚如何解決這個問題。我是否犯了一個非常基本的語法錯誤,還是有更復雜的事情發生?
您可能過早執行腳本,請參閱一般用法指南瞭解詳細信息。 – amaitland
單擊按鈕時會執行該腳本,因此,如果我可以等待,只要我想要,就無法加載該頁面 – jardantuan