我正在寻找类似于VB6 / .Net Winforms“浏览器控件”的东西,让你在应用程序中显示一个浏览器。 我不想只是渲染页面,我希望它是一个功能齐全的浏览器,人们可以点击链接,运行Javascript等等。
从本质上讲,我想要的是一个IFrame,只是它在Flash应用程序或Silverlight应用程序中运行。
这样做的最终原因是我想击败IFrame的破坏者。我正在创建一个Web应用程序,让您可以看到其中的其他网站,并且我遇到了一堆拥有此代码的网站:
var t = top.location,w = window.location; if(t!= w)t.replace(w);
(来自eBay BTW)
基本上将用户从我的网站中弹出并进入他们的网站。 我希望通过使用某种类型的“浏览器控件”,在插件沙箱中,“顶部”,将是该浏览器控件的顶部,而不是我的网站。
当然,如果你有任何其他想法可以实现同样的目标,那么它们将非常受欢迎。
编辑:我已经尝试过Bill建议的Component One控件,但是它不能用于这些目的,因为它在SilverLight控件的之外创建一个IFrame ,所以它在与托管Silverlight的页面相同的上下文,这是我想要避免的。
答案 0 :(得分:1)
我使用HTML control created by Component One。它有一个限制,即页面中的Silverlight对象应设置为无窗口,否则它可以很好地工作。
答案 1 :(得分:1)
Northcode SWF Studio允许您在Flash中的舞台上添加浏览器窗口。我个人使用SWF Studio作为第三方SWF2EXE工具来扩展Flash投影仪的功能。它非常稳定和强大。就浏览器控制而言here is您可以下载并测试它是否符合您的目的。检查浏览器APT here.
答案 2 :(得分:1)
我们没有构建一个组件来让人们这样做,但我们愿意接受这里的建议。话虽如此,最简单的解决方案是iFrame,但请注意,当您将iFrame覆盖在Silverlight顶部时,我们看到客户会遇到性能问题(主要是由于iframe的alpha透明度等)。
这与Silverlight无关,Flash在浏览器和在给定操作系统中呈现时遇到的问题与此相同。
HTH。
Scott Barnes / Rich Platforms产品经理/ Microsoft。
答案 3 :(得分:0)
这是一个老帖子,但我会添加我的tupence答案。我使用DivElements免费控制Silverlight link text,它运行得很好。它只是准确地定位div,使它看起来像在顶部。
对于其他此类控件,您必须将Silverlight容器的windowless
属性设置为true。
它对我来说非常好用,我能够无数地使用Google地图和Acrobat插件与我的Silverlight应用程序并排显示。
PS:因为该组件只是在页面中添加<div>
,所以您无法像在<header>
标记中那样动态加载Javascript文件。
PPS:在“手动”设置HTML代码时,请确保在使用HTML DOM之前连接DocumentReady
或Loaded
事件。
希望能有所帮助。