C#如何在服务器端得到Iframe的值,iframe是客户端控件,这样便于编写所见即所得式的编辑器。
求高手!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    建议下Fckeditor看看源码。常见思路是js,可以用Jquery等框架
      

  2.   

    在html控件里加上runat=server的属性
    注意这样生成出来的html控件id值可能会变
      

  3.   


    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" ValidateRequest="false" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <HTML>
      <body>
        <form id="frmMain" method="post" runat="server">
          <iframe id="ifrHTML" name="ifrHTML" src="Default.aspx"></iframe>
          <br>
          <asp:Button id="cmdSend" runat="server" Text=" 提  交 " OnClick="cmdSend_Click"></asp:Button>
          <input type="hidden" name="hidValue">
        </form>
        <script>
          //ifrHTML.document.designMode = "on";
        </script>
      </body>
    </HTML>前台
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            cmdSend.Attributes.Add("onClick", "document.frmMain.hidValue.value = ifrHTML.document.body.innerHTML;");    }    
        protected void cmdSend_Click(object sender, EventArgs e)
        {
               String  strValue = String.Empty;
               strValue = Request.Form["hidValue"];
               Response.Write(Server.HtmlDecode(strValue));    }
    }
    后台代码.感觉这么处理不是最佳的,应该用JS来解决这个问题.
      

  4.   

    就是用楼上的方法,将 iframe 的转存到 hidden 中
      

  5.   

    感觉这么处理不是最佳的,应该用JS来解决这个问题.========你这就是 js 实现的
      

  6.   

    大凡iframe的编辑器都会把值存到一个hidden input里的。
      

  7.   

    我指不用hidden控件,存用JS来解决.
      

  8.   

    再次请教:上面的代码在单个网站中可以实现,可是放到masterPage中为啥不行呢?下面是代码,请指教:
    aspx内容:
    <asp:Content ID="Edit" ContentPlaceHolderID="CphMaster" Runat="Server">
        <asp:Label ID="lblTitle" runat="server" Text="页面标题"></asp:Label>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html>
        <head>
        <script src="JS/JNewPage.js" type="text/javascript"></script>
        </head>
        <body>
            <form action="NewPage.aspx?act=add" method="post" name="form1" runat="server" id="frm" >
            <input type="text", ID = "TitleName",name ="TitleName",size ="'50" onchange= "TitleNamechange()"/>
            <div id ="TNresult"></div>
            <ul id="FormatUl">
            <li><a href="#" class="formatlink" id="BoldLink" title="加粗"></a></li>
            <li><a href="#" class="formatlink" id="ItalicLink" title="斜体"></a></li>
            <li><a href="#" class="formatlink" id="UnderlineLink" title="下划线"></a></li> 
            </ul>
            <iframe id="HtmlEdit" name="HtmlEdit" style="WIDTH: 100%; HEIGHT: 296px" marginWidth=0 marginHeight=0 src="NewPage.aspx"></iframe>     
            <asp:Button ID="savepage" runat="server" Text="提交" onclick="savepage_Click" />
            <input type="hidden" name="hidValue"/>
            
        </form>
        
        </body>
        </html></asp:Content>aspx.cs:
        protected void Page_Load(object sender, EventArgs e)
        {
            savepage.Attributes.Add("onClick", "document.forms[0].hidValue.value=" + Server.HtmlEncode("HtmlEdit.document.body.innerHTML") + "");
        }
        protected void savepage_Click(object sender, EventArgs e)
        {
            String str1 = String.Empty;
            str1 = Request.Form["hidValue"];
            Response.Write(Server.HtmlDecode(str1));    }
      

  9.   

    放到mp里,输出的html的id会变。
      

  10.   

    哦,那怎么看id呢?也就是怎么得到document.forms[0].hidValue.value?