ドキュメントによると、クライアントで定義された既存のスクリプトを呼び出す必要があります:
JavaScript:
var extDate = new Date("03 Oct 2013 16:04:19");
function test(date) {
alert(date);
extDate = date;
}
eval
無名関数を呼び出して実行することもできます。これは、ページ ソースを制御できない場合に推奨される方法です。基本的に、JavaScript インタープリターでコードを呼び出して実行します。
C#:
private void InvokeTestMethod(DateTime date)
{
if (webBrowser1.Document != null)
{
webBrowser1.Document.Body.AppendChild(webBrowser1.Document.CreateElement("script"));
webBrowser1.Document.InvokeScript("eval", (Object)"(function() { window.date=new Date('03 Oct 2013 16:04:19'); })()");
webBrowser1.Document.InvokeScript("eval", (Object)"(function() { alert(window.newDate.toString()); })()");
webBrowser1.Document.InvokeScript("eval", (Object)"(function() { window.date=new Date('" + date.ToString("dd MMM yyyy HH:mm:ss") + "'); })()");
webBrowser1.Document.InvokeScript("eval", (Object)"(function() { alert(window.newDate.toString()); })()");
}
}
private void Test()
{
InvokeTestMethod(DateTime.Now);
}
VB.NET
Private Sub InvokeTestMethod([date] As DateTime)
If webBrowser1.Document IsNot Nothing Then
webBrowser1.Document.Body.AppendChild(webBrowser1.Document.CreateElement("script"))
webBrowser1.Document.InvokeScript("eval", new [Object]() {"(function() { window.date=new Date('03 Oct 2013 16:04:19'); })()"}))
webBrowser1.Document.InvokeScript("eval", new [Object]() {"(function() { alert(window.newDate.toString()); })()"}))
webBrowser1.Document.InvokeScript("eval", new [Object]() {"(function() { window.date=new Date('" + [date].ToString("dd MMM yyyy HH:mm:ss") + "'); })()"})
webBrowser1.Document.InvokeScript("eval", new [Object]() {"(function() { alert(window.newDate.toString()); })()"}))
End If
End Sub
Private Sub Test()
InvokeTestMethod(DateTime.Now)
End Sub
http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.invokescript.aspx
eval を使用すると、匿名のJavaScript 関数を呼び出して、Web ページのコンテキスト内で独自のコードを実行できます。最後の 2 回の eval 呼び出しでは、日付を設定し、DateTime.Now
JavaScript が理解できるように日付をフォーマットしています。