0

私のaspxには、次のコードスニペットがあります。これは、AjaxToolkitからエディターコントロールを正しくレンダリングします。

<div>
    <ajaxToolkit:Editor ID="Editor" runat = "server" />
</div>

C#では、エディターのコンテンツにアクセスするには次のようにします。

Editor.Content = "some text here"

ただし、JavaScriptでは、これにアクセスする方法がわかりません。これまでのところ、私は試しました:

var st =$find('<%=Editor.ClientID%>').get_content();

ただし、$findステートメントはnull値を返します。

4

2 に答える 2

1

それはうまくいくはずです。次のコードを試したところ、エディター コンポーネントが正常に見つかりました。

<asp:ScriptManager runat="server" ID="ScriptManager" EnablePartialRendering="true">
    <Scripts>
        <asp:ScriptReference Path="Scripts/jquery-1.4.1.js" />
    </Scripts>
</asp:ScriptManager>

<div>
    <ajax:Editor runat="server" ID="Editor"></ajax:Editor>
</div>

<script type="text/javascript">
    Sys.Application.add_load(function() {
        Sys.Debug.traceDump($find('<%= Editor.ClientID %>'), "editor");
    });

</script>

そのため、Sys.Application.add_load イベント ハンドラーでエディターにアクセスしてみてください。これが役立つ場合、問題の原因は、ページがコンポーネントの初期化を完了する前にコンポーネントを見つけようとすることです。

于 2012-10-23T20:09:03.233 に答える
0

この機能をいじってみると、HTML が次のようになっていることに気付きました。

<iframe id = "Some iFrameId">
    #document
    <html>
        <head>...</head>
        <body>The text of the editor</body>
    </html>
 </iframe>

ASPX では、生活を少し楽にするために次のことを行いました。

<div id ="myDiv" ClientIDMode="Static">
    <ajaxToolkit:Editor ID="Editor" runat = "server" />
</div>

これを行うことで、エディターの HTML を含む myDiv に囲まれた iFrame を見つけるように問題が単純化されました。

JSでそれを行うには

//get the iFrame
var myIframe = $("#myDiv, iframe") //this returns an array and myIframe[1] is the iFrame, which contains the text.
//get the HTML from the iFrame
var content = myIFrame[1].contentWindow.document.body.innerHTML;

今、コンテンツには、私が探していたものが含まれています。これはちょっと長いので、もっと簡単な方法があるかもしれませんが、解決策を探したところ、ほとんどが次のようなものであることがわかりました。

私の場合はうまくいきませんでした.get_contentまたはいくつかの関数呼び出しを実行します。

于 2012-10-25T20:27:01.797 に答える