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);
}}