使用 window.external 将 javascript Date 对象传递给 C# WebBrowser 控件
我可以使用 javascript window.external
从 WebBrowser
WinForms 控件调用 WebBrowser.ObjectForScripting
的 C# 方法并传递 string
、int
、bool
等。但是我不知道如何传递 javascript Date
对象并以某种方式将其转换/编组为 .NET <代码>日期时间类。
显然,我可以传递一个字符串并解析它,但这实际上不是重点。我只是好奇如何使用 javascript Date
和 .NET DateTime
来做到这一点?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以利用 JavaScript 中的 日期 表示为自 UNIX 纪元(1970-01-01 00:00:00 UTC)以来经过的毫秒数。使用 valueOf() 方法从 < code>Date 对象:
如果您可以将该值作为
double
封送至 C#,则可以使用其构造函数和 DateTime 对象="http://msdn.microsoft.com/en-us/library/system.datetime.addmilliseconds.aspx" rel="nofollow">AddMilliseconds() 方法:You can take advantage of the fact that dates in Javascript are expressed as the number of milliseconds elapsed since the UNIX epoch (1970-01-01 00:00:00 UTC). Use the valueOf() method to obtain that value from a
Date
object :If you can marshal that value to C# as a
double
, you can create the appropriateDateTime
object using its constructor and the AddMilliseconds() method:我终于让它工作了。我不知道为什么,但我无法将它与
dynamic
一起使用。这是解决方案:I finally got it working. I don't know why, but I am unable to use it with
dynamic
. Here is the solution:我为我的项目找到了更好的解决方案。
在 JavaScript 中:
在 C# 中
I found better solution for my project.
in javascript:
in C#