Silverlight的跨域restricitions导致很多开发者实现的解决方法。如果你需要显示HTML页面,你应该看看Silverlight 4(WebBrowser)控件,尽管这似乎只在浏览器模式运行时才起作用。
如果需要通过内容来分析,你可以尝试以下一些:
对于托管代码解决方案,你已经实施代理服务是您最佳的选择。
编写一个返回此信息的Java小程序。 Silverlight可以采用JavaScript来访问Java应用程序。这也是相反的,但有点难以设置。 (如果你需要更多的信息,请让我知道)。
使用javascript XmlHttpRequest从源中获取所需的数据。支持多种浏览器时,这可能很困难。此链接显示了如何操作的示例(您需要向下滚动)。 Javascript get Html
代码:
var xmlHttpRequestHandler = new Object();
var requestObject;
xmlHttpRequestHandler.createXmlHttpRequest = function(){
var XmlHttpRequestObject;
if(typeof XMLHttpRequest != "undefined")
{
XmlHttpRequestObject = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
var tryPossibleVersions =["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp","Microsoft.XMLHttp"];
for(i=0;i<tryPossibleVersions.length;i++)
{
try
{
XmlHttpRequestObject = new ActiveXObject(tryPossibleVersions[i]);
break;
}
catch(xmlHttpRequestObjectError)
{
// Ignore Exception
}
}
}
return XmlHttpRequestObject;}
function getHtml(){
var url = document.getElementById('url').value;
if(url.length > 0)
{
requestObject = xmlHttpRequestHandler.createXmlHttpRequest();
requestObject.onreadystatechange=onReadyStateChangeResponse;
requestObject.open("Get",url, true);
requestObject.send(null);
}}
function onReadyStateChangeResponse(){
var ready, status;
try
{
ready = requestObject.readyState;
status = requestObject.status;
}
catch(e) {}
if(ready == 4 && status == 200)
{
alert(requestObject.responseText);
}}