0

Google翻訳Javaスクリプトを使用して英語をグジャラート語に翻訳するためにテキストボックスを使用しましたが、テキストボックスにajax更新パネルを使用すると機能しません。

以下は私が使用したJavaスクリプトです。

何か案が?

ありがとう!

<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>
                        </div>
                    </ContentTemplate>
                </asp:UpdatePanel>
4

1 に答える 1

1

UpdatePanel を使用する場合は、次のようにポストバックした後にスクリプトを再初期化する必要があります。

// maybe this also need to be inside the EndRequest again
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%>']);
}

// here you make the first init when page load
google.setOnLoadCallback(onLoad);

// here we make the handlers for after the UpdatePanel update
     var prm = Sys.WebForms.PageRequestManager.getInstance();    
     prm.add_initializeRequest(InitializeRequest);
     prm.add_endRequest(EndRequest);
    
    function InitializeRequest(sender, args) {      
    }
    
    // this is called to re-init the google after update panel updates.
    function EndRequest(sender, args) {
        onLoad();
    }

同様の問題:
ページがリロードされたときに jquery スクリプトが機能する
Gridview Jquery DatePicker の Asp.Net UpdatePanel

于 2012-10-29T08:04:21.287 に答える