2017-08-09 30 views
1

我正在ASP.NET網站上工作,我正在使用HttpGetRequest & HttpGetResponse將https://news.google.com/news的內容放入我的某個頁面的文字控件中。如何包含我的文字控件的大小?

問題是流覆蓋了整個頁面。我無法通過div或容器來控制尺寸。因此,來自文字的流覆蓋了其上方的標籤(在其自己的div中)以及從SiteMaster.Master繼承的菜單。

如何讓菜單和標籤保持在文字控制之上? 後面的代碼:

 protected void Page_Load(object sender, EventArgs e) 
    { 
     HttpWebRequest googRequest = (HttpWebRequest)HttpWebRequest.Create("https://news.google.com/news"); 
     HttpWebResponse resp = (HttpWebResponse)googRequest.GetResponse(); 
     string googNews = new System.IO.StreamReader(resp.GetResponseStream()).ReadToEnd(); 

     Literal1.Text = googNews; 

     Label1.Text = DateTime.Now.ToLongTimeString(); 
    } 

ASP:

<%@ Page Title="" Language="C#" MasterPageFile="~/SiteMaster.Master" AutoEventWireup="true" CodeBehind="Literally.aspx.cs" Inherits="DNut.Literally" %> 
 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
 
</asp:Content> 
 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
 
    <p> 
 
     <asp:Label ID="Label1" runat="server" Font-Names="Arial" Font-Size="Larger" Font-Italic="true"></asp:Label> 
 
    </p> 
 
</asp:Content> 
 

 
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" runat="server"> 
 
     <div> 
 
      <asp:Literal ID="Literal1" runat="server"></asp:Literal> 
 
     </div> 
 
</asp:Content>

回答

0

內容的基礎上,你是如何接受它,可能會包括一個html標籤,head標籤和body標籤。這不是注入到現有html文檔中間的有效標記。在另一個html文檔中包含像這樣的整個頁面的典型方法是通過iframe標記。

iframe在網絡開發世界裏有點不高興,但並沒有使用很多,但在這種情況下,它非常適合你想要做的事情。它還有助於保護您的站點免受跨站腳本攻擊(XSS)攻擊(試圖通過文字標籤將標記注入div)

通過iframe標記,您可以將'src'屬性設置爲要顯示的URL你不會需要literal或相關的C#代碼來設置。

<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" runat="server"> 
    <iframe src='https://news.google.com/news'></iframe> 
</asp:Content> 

您可以風格特點的iframe有一個理想的高度和寬度。

+0

新聞頁面仍然在邊界流溢 – Heath

+0

我的不好,我沒有仔細查看你用來獲取內容的代碼,我會更新我的答案。一秒。 –

+0

謝謝羅恩!這確實實現了我所問的,所以我將其標記爲答案。只是爲了共享,但我會說,出於安全原因使用iframe標籤時,鏈接中的內容不再顯示。但是這看起來像一個不同的主題。這只是我正在研究的一個實驗室,所以它實際上不需要比這更好的工作。再次感謝!好信息。 – Heath

相關問題