首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单声道和window.external

单声道和window.external
EN

Stack Overflow用户
提问于 2009-07-05 21:25:37
回答 2查看 1.6K关注 0票数 0

这将是一个通过ClickOnce部署的Windows Forms应用程序。我们的计划是使用WebBrowser控件来公开使用Active-X控件的web应用程序。使用window.external和InvokeScript,对象将被替换为对Reg-Free COM对象(SXS)的引用。我知道这听起来像是一团糟,但这是小事一桩,而且我的日程安排很紧。最终,SXS部分可以被替换,并且希望服务器端代码可以更新为更好的东西。这样会出现严重的性能问题吗?这会给我带来多少麻烦呢?

以Mono2.0为目标会让代码在.NET和.NET之间移植变得更容易吗?VB.NET代码移植到Mono很麻烦吗?我猜不应该是吧?(我正在与VB6程序员一起工作)。

文档称window.external在Mono下不可用。这听起来像是有实现这一点的计划。现在就使用window.external并等待Mono实现它安全吗?或者,有没有办法效仿这一点?

我还有其他的计划来慢慢地让代码更容易移植,我希望我可以把它作为一种方法(读作: loophole)来实现。

如果你有关于态度和心态的建议,我也很乐意听到。但请先回答我主要关心的问题。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-05 22:00:34

我不知道你到底想做什么,但我看到了我可以回应的具体单词:

ClickOnce.

  • Mono不支持
  • Mono不支持ActiveX。有一些COM的东西,但我不知道它有多完整。
  • Mono的WebBrowser控件支持基本的操作,但是window.external是非常高级的功能,非常特定于IE。目前还没有任何工作被放到WebBrowser控件中,我认为这种情况不会很快发生变化,除非有人提供您所需的内容。

以Mono2.0为目标的

会让代码在.NET和.NET之间移植变得更容易吗?

我假设这与针对.NET 3.5,而不是针对.NET 1.1是相反的。WCF2.0类库比.NET 3.0/3.5的要完整得多(没有.NET,没有WF,有限的.NET)。然而,如果你只是想要像LINQ这样的C# 3功能,那么所有的C# 3都应该工作得很好。

的VB.NET代码移植到Mono很麻烦吗?

在Mono上,C#肯定比VB.Net支持得更好。VB.Net编译器当前的版本为8.0 (2005)。VB.Net运行时类库也不完整。(尽管您可以完全避免这种情况,但仍然可以使用VB.Net。)

票数 2
EN

Stack Overflow用户

发布于 2009-12-04 23:58:12

下面是在.NET WebBrowser控件中模拟windows.external的一个技巧:

在您放在for浏览器控件中的javascript代码中,封装对window.external的调用(例如):

函数wex() {window.external.WBEvent(参数,arguments1);返回false;}

更改导航功能,但使用您自己的协议:

函数wex() { location.href =‘wex://域//’+参数+ '//‘+ arguments1;return false;}

截取并取消Visual Basic代码中的导航:

代码语言:javascript
复制
  Private Sub WebBrowser_Navigating(ByVal sender As Object, _
             ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) _
             Handles WebBrowser.Navigating

    With e
        If .Url.AbsoluteUri.StartsWith("wex://") Then
            Dim str As String = HttpUtility.UrlDecode(.Url.AbsoluteUri)
            Dim pos As Integer = InStr(14, str, "//")
            WBEvent(Mid(str, 15, pos - 15), Mid(str, pos + 2))
            'Debug.Print("wex " & Mid(str, 15, pos - 15) & " " & Mid(str, pos + 2))
            e.Cancel = True
        End If
    End With
End Sub

域名将转换为小写。这就是为什么它被忽略的原因。

如果您有多个函数,则将其作为uri的第一部分,并在导航事件代码中执行select语句。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1084850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档