我刚刚发现了window.external对象,它允许在托管IE浏览器的winform程序中调用C#函数。
我对MSDN上的文档和stackOverflow上的一些线程进行了红色处理,但是没有发现这些调用是否是同步的,而且它是否是可定制的?
我在MSDN文档中创建的唯一一件事没有谈到这个主题=/
发布于 2013-09-06 07:10:01
这些调用自然是同步的,但是异步处理它们通常是有意义的,以避免可能的重入到JavaScript代码中。你可以用SynchronizationContext.Post来做这个。
你从JavaScript打电话给JavaScript。在.NET方面,它可能如下所示:
this.webBrowser.ObjectForScripting = new ObjectForScripting(this.webBrowser);
// ...
[ComVisible(true), ClassInterface(ClassInterfaceType.None)]
public class ObjectForScripting
{
WebBrowser _browser;
SynchronizationContext _context = SynchronizationContext.Current;
public ObjectForScripting(WebBrowser browser)
{
_browser = browser;
}
public void TestMethod()
{
_context.Post(_ =>
{
_browser.Document.InvokeScript("alert", new object[] {
"Process a call from JavaScript asynchronosuly." });
}, null);
}
}https://stackoverflow.com/questions/18595903
复制相似问题