1

Google 翻訳 Javascript を使用して英語をグジャラート語に翻訳するために ajaxtoolkit HtmlEditorExtender(Rich textbox) でテキスト ボックスを使用しました。テキストボックスだけだとうまくいきますが、HtmlEditorExtender(Rich textbox) を使ったらうまくいきません。

以下は私が使用したJavascriptです。

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load("elements", "1", {
            packages: "transliteration"
        });
        function onLoad() {
            var options = {
                sourceLanguage:
                google.elements.transliteration.LanguageCode.ENGLISH,
                destinationLanguage:
                google.elements.transliteration.LanguageCode.GUJARATI,

                shortcutKey: 'ctrl+g',
                transliterationEnabled: true
            };
            var control =
            new google.elements.transliteration.TransliterationControl(options);
            control.makeTransliteratable(['<%=TextBox1.ClientID%>']);
        }
        google.setOnLoadCallback(onLoad);

        var finalString = "";
        function Changed(textControl) {

            var _txtUnicodeName = document.getElementById('<%=TextBox1.ClientID%>');

            var _EnteredString = _txtUnicodeName.value;
        }
    </script>

    <asp:UpdatePanel ID="Activistupdatepanel" runat="server">
                    <ContentTemplate>
                        <div>
                            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
                            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    <ajaxtoolkit:HtmlEditorExtender ID="htmlEditorExtender1" TargetControlID="TextBox1"
                        runat="server" EnableSanitization="False" Enabled="True">
                    </ajaxtoolkit:HtmlEditorExtender>
                        </div>
                    </ContentTemplate>
                </asp:UpdatePanel>
4

1 に答える 1

0

非表示の TextBox を使用してはならないため、機能しません。代わりに、HtmlEditorExtenderのエディター div を使用する必要があります。これを試して:

        function onLoad() {
        document.getElementById('<%=htmlEditorExtender1.ClientID%>_ExtenderContentEditable').setAttribute("contentEditable", "true"); //*** added this
        var options = {
            sourceLanguage:
            google.elements.transliteration.LanguageCode.ENGLISH,
            destinationLanguage:
            google.elements.transliteration.LanguageCode.GUJARATI,

            shortcutKey: 'ctrl+g',
            transliterationEnabled: true
        };
        var control =
        new google.elements.transliteration.TransliterationControl(options);
        control.makeTransliteratable(['<%=htmlEditorExtender1.ClientID%>_ExtenderContentEditable']); //**** changed this
    }
    google.setOnLoadCallback(onLoad);

基本的に、私は TextBox をHtmlEditorExtenderのエディター div に変更しただけです。<%=htmlEditorExtender1.ClientID%>_ExtenderContentEditable

公式ドキュメントによると、div を使用するにはcontentEditable=true属性が必要です。下の最初の行onLoad()は、そのカスタム属性を div に追加します。

.makeTransliteratable(elementIds, opt_options) は、提供された HTML 要素の音訳を有効にします。このメソッドのパラメーターは次のとおりです。

elementIds は、文字変換を有効にする編集可能な要素 ID または要素参照の文字列を含む配列です。編集可能な要素は次のとおりです。
テキストフィールド
テキストエリア
**contentEditable="true" の div**
designMode="on" の iframe
contentEditable="true" 本体を持つ iFrame。文字変換を有効にする前に、iFrame が読み込まれていることを確認してください。

これは私にとってはうまくいきました。この作業に問題がある場合は、お知らせください。

于 2012-12-31T16:48:01.303 に答える