在 WP7 的 Web 浏览器控件中加载 HTML 脚本和视频播放

Load HTML script and video play in WebBrowser Control in WP7

本文关键字:脚本 HTML 视频 播放 加载 WP7 Web 浏览器 控件      更新时间:2023-09-26

我在加载脚本和自动播放来自 youtube、vimeo 等的视频时遇到问题。我无法在网络浏览器控件中加载以下脚本中的内容。下面是我的 C# 代码。

string html = "<!doctype html><html><head><title></title></head><body><div id='_cvp_11293'><span></span></div><script type='text/javascript'>(function(){var a;a=new XMLHttpRequest;a.onreadystatechange=function(){rs=a.readyState;if(4==rs&&200==a.status){var c=JSON.parse(a.responseText),b;for(b in c.payload)if(c.payload.hasOwnProperty(b)){var d=c.payload[b];document.getElementById('_cvp_'+b).innerHTML=d.view}}};a.open('GET','http://media.yesheis.com/multi_player?ids=11293&w=300&h=225&autoplay=1&provider=youtube',!0);a.send()})(window);</script></body></html>";
web.IsScriptEnabled = true;
web.NavigateToString(html); 

XAML :

<phone:WebBrowser HorizontalAlignment="Left" IsScriptEnabled="True" Margin="36,44,0,0" Grid.Row="1" VerticalAlignment="Top" Name="web" Width="350" Height="500" /> 

你的 C# 代码很好。

但是,您的 HTML 代码已损坏。只需将其保存到某个Web服务器上的HTML页面(您的本地IIS会做得很好),然后使用Windows Phone的内置Internet Explorer导航 - 您只会看到一个白屏。

在你的HTML中,有一个JavaScript可以执行跨域XMLHttpRequest。这就是该行a.open('GET', 'http://media.yesheis.com/multi_player?ids=11293&w=300&h=225&autoplay=1&provider=youtube', !0);引发拒绝访问异常的原因。