【问题标题】:Google translate using Javascript for HtmlEditorExtender doesn't work使用 Javascript 进行 HtmlEditorExtender 的 Google 翻译不起作用
【发布时间】:2012-12-15 15:21:23
【问题描述】:

我使用了带有 ajaxtoolkit HtmlEditorExtender(Rich textbox) 的文本框,使用谷歌翻译 Javascript 将英语翻译成古吉拉特语。它只适用于文本框,但是当我使用 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>

【问题讨论】:

    标签: javascript asp.net ajax google-translate


    【解决方案1】:

    它不起作用,因为您不应该使用隐藏的文本框。相反,您应该使用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,也就是&lt;%=htmlEditorExtender1.ClientID%&gt;_ExtenderContentEditable

    根据official document 使用一个div 你需要contentEditable=true 属性。 onLoad() 下的第一行将该自定义属性添加到 div。

    .makeTransliteratable(elementIds, opt_options) 在提供的 HTML 元素上启用音译。此方法的参数是:
    
    elementIds 是一个数组,其中包含您希望启用音译的可编辑元素 ID 或元素引用字符串。可编辑元素可以是:
    一个文本字段
    一个文本区域
    ** contentEditable="true" 的 div **
    带有 designMode="on" 的 iframe
    具有 contentEditable="true" 正文的 iFrame。确保在启用音译之前加载 iFrame。

    这对我有用。如果您在完成这项工作时遇到问题,请告诉我。

    【讨论】:

    • 感谢@Ertug 我使用了它,但它在 document.getElementById('ContentPlaceHolder1_htmlEditorExtender1_ExtenderContentEditable').setAttribute("contentEditable", "true");比如“Microsoft JScript 运行时错误:无法获取属性‘setAttribute’的值:对象为空或未定义”
    • 抱歉我的回复晚了。我离开了一段时间。请制作一个没有ContentPlaceHolder 的简单页面并试一试并告诉我。今天晚些时候我会试着看看它。
    • @Ertug:名称的 _ExtenderContentEditable 部分是硬编码的并且始终相同吗?我检查了 HtmlEditorextender 控件的渲染输出,但没有这样的 Html 对象。
    猜你喜欢
    • 2014-07-14
    • 2014-04-21
    • 1970-01-01
    • 2012-04-01
    • 2019-07-11
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    相关资源
    最近更新 更多