Silverlight 4 OOB应用程序访问WebBrowser控件中页面的HTML DOM
有人知道是否可以访问和操作Silverlight 4 WebBrowser控件呈现的html页面中的元素吗Silverlight 4 OOB应用程序访问WebBrowser控件中页面的HTML DOM,silverlight,dom,silverlight-4.0,webbrowser-control,out-of-browser,Silverlight,Dom,Silverlight 4.0,Webbrowser Control,Out Of Browser,有人知道是否可以访问和操作Silverlight 4 WebBrowser控件呈现的html页面中的元素吗 情况是这样的。用户启动具有提升信任度的Silverlight OOB应用程序。用户操作应用程序中的某些数据,但必须将部分数据提交到外部网站。如果我在WebBrowser控件中打开外部站点,是否有任何方法可以通过对DOM的编程访问在外部站点的web表单中预先填充一些信息来帮助用户 您可以使用在WebBrowser控件内执行javascript函数。请注意,您不能进行跨域调用 例如: Html
情况是这样的。用户启动具有提升信任度的Silverlight OOB应用程序。用户操作应用程序中的某些数据,但必须将部分数据提交到外部网站。如果我在WebBrowser控件中打开外部站点,是否有任何方法可以通过对DOM的编程访问在外部站点的web表单中预先填充一些信息来帮助用户 您可以使用在WebBrowser控件内执行javascript函数。请注意,您不能进行跨域调用 例如: Html页面
<html ><head>
<script type="text/javascript">
function SetValues(val) {
document.getElementById("q").value = val;
}
</script>
</head><body>
<input type="text" id="q" />
</body></html>
快速回答:否。 长答案: OOTB+WebBrowserControl的初衷是帮助客户以富文本格式显示(电子邮件、RSS等)进行烘焙,同时提供打印大型文档(报告等)的能力 同样的规则也适用于iframe,就像您使用这个控件一样(据我所知,没有任何计划更改它) 您刚才提到的场景让我有点紧张,因为我可以看到Silverlight团队中的一些人提出了有关安全性的问题,因为这可以作为一种方式,通过Silverlight作为毫无疑问的负载,自动对网站等进行DOS攻击(即使在信任度提高的情况下,用户也经常被骗安装这样的东西——这是事实,对不起) - 斯科特·巴恩斯/前Silverlight产品经理。你看到问题中关于“外部网站”的部分了吗?如果跨域不起作用,那么这就不起作用了。
<Grid x:Name="LayoutRoot" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="268*" />
<ColumnDefinition Width="132*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="60" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<WebBrowser Name="webBrowser1" Grid.Row="1" Grid.ColumnSpan="2" />
<Button Content="Search" Name="button1" Click="button1_Click"
Grid.Column="1" />
<TextBox Name="textBox1" />
</Grid>
public MainPage()
{
InitializeComponent();
webBrowser1.Navigate(new Uri("http://localhost:58976/HTMLPage1.htm"));
}
private void button1_Click(object sender, RoutedEventArgs e)
{
webBrowser1.InvokeScript("SetValues",textBox1.Text);
}