【问题标题】:.NET WebBrowser control with Adobe SVG Viewer.NET WebBrowser 控件与 Adob​​e SVG 查看器
【发布时间】:2010-09-30 02:22:03
【问题描述】:

我在 .NET 2.0 WebBrowser 控件中加载 SVG 文件时遇到问题。如果我创建一个新的 WinForms 应用程序项目,将一个 WebBrowser 控件和一个按钮拖到 Form1.cs 设计图面上,并在按钮的单击处理程序中添加一行以将 WebBrowser 控件的 Url 属性设置为 SVG 文件,我在运行时出现两个 IE 脚本错误(如出现 Javascript 问题时出现的对话框)。因此,我正在编写的唯一代码行是:

webBrowser1.Url = new Uri(@"http://wiki.allegro.cc/pub/f/fb/Grozilla.svg");

如果我用 IE 直接浏览链接,这个 SVG 文件可以正常加载;我通过我的测试应用程序得到的错误是:

line 2, char 1, error: Invalid character, followed by
line 1, char 1, error: Object expected

(假设我对“继续在此页面上运行脚本”的提示回答“是”)。

我正在使用IE 7.0.5730.13, Adobe SVG Viewer 3.03 build 94, Visual Studio 2008。任何人都可以复制这个吗?有没有人看到它/知道如何解决它?

(编辑:之前为了示例的目的在构造函数中设置了 URL,但这引发了控件是否已完成初始化的问题,因此已将示例更改为使用按钮 - 问题仍然存在。这个错误最初出现在生产代码中,所以我编写的示例程序试图隔离问题并尽可能简单地重现它。)

(编辑 2:在几台不同的机器上测试过,这个问题似乎与 IE7 有关 - 运行 IE6,一切正常。)

【问题讨论】:

    标签: .net browser svg


    【解决方案1】:

    我发现在使用 WebBrowser 时,您无法在创建控件时调用导航到页面。

    我通过创建一个计时器来解决这个问题,该计时器在加载表单时触发一次(在构造函数中启用它),然后在计时器的事件处理程序中,调用 Navigate 或设置 Url 属性,它应该可以工作。

    我无法告诉你为什么尽管我的一生。

    【讨论】:

    • 感谢您的回复 - 如果我在按钮单击处理程序中设置 URL,我实际上会得到相同的行为,所以我认为问题不是时间问题。我将编辑我的问题以反映这一点。
    【解决方案2】:

    看起来将 SVG 文件的源网站添加到我的受信任的站点列表可以解决问题,所以这与 IE 安全性有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-29
      • 2018-09-08
      • 2011-06-29
      • 2019-01-17
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多