2012-12-31 3 views
1

Google 번역 Javascript를 사용하여 영어를 구자라트 어로 번역하기 위해 ajaxtoolkit HtmlEditorExtender (서식있는 텍스트 상자)와 함께 텍스트 상자를 사용했습니다. 그것은 텍스트 상자에 대해서만 잘 작동하지만 HtmlEditorExtender (서식있는 텍스트 상자)를 사용하면 작동하지 않습니다.Google 번역을 사용하여 HtmlEditorExtender에 대한 번역이 작동하지 않습니다.

다음은 내가 사용한 자바 스크립트입니다.

<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> 

답변

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); 

기본적으로, 사업부를 사용하는 official document에 따르면 <%=htmlEditorExtender1.ClientID%>_ExtenderContentEditable

입니다 HtmlEditorExtender의 에디터 DIV, 만 변경된 텍스트 상자는 contentEditable=true 속성이 필요합니다. onLoad() 아래의 첫 번째 줄은 해당 맞춤 속성을 div에 추가합니다.

.makeTransliteratable(elementIds, opt_options) enables transliteration on the supplied HTML element(s). Parameters for this method are: 

elementIds is an array containing strings of editable element IDs or element references for which you wish to enable transliteration. An editable element can be: 
A text field 
A text area 
**A div with contentEditable="true"** 
An iframe with designMode="on" 
An iFrame with contentEditable="true" body. Make sure the iFrame is loaded before enabling transliteration.

이것은 나를 위해 일했습니다.이 작품을 구하는 데 어려움이 있으면 알려주십시오.

+0

감사합니다. @ Ertug 사용했지만 document.getElementById ('ContentPlaceHolder1_htmlEditorExtender1_ExtenderContentEditable')에서 오류가 발생했습니다. setAttribute ("contentEditable", "true"); "Microsoft JScript 런타임 오류 : 'setAttribute'속성 값을 가져올 수 없습니다. 개체가 null이거나 정의되지 않음" – Somnath

+0

위의 코드를 제안하십시오. – Somnath

+0

나의 늦은 답변에 대한 죄송합니다. 나는 잠시 떨어져 있었다. 'ContentPlaceHolder'가없는 간단한 페이지를 만들어서 알려주세요. 오늘 나중에 보도록하겠습니다. – Ertug