0

関数へのウィンドウオブジェクトへのアクセスを探しています(実際には、ajaxコールバック関数ですが、気にしないでください)。それで、私の問題と私がこの問題を抱えている理由を説明しているチュートリアルを見つけましたが、彼はそれを解決しません。

ウィンドウ オブジェクトにアクセスしてアラートを作成する場合、変数は未定義です。そして、その理由がわかりました(と思います)。グローバル変数が関数内にある場合、この関数内のすべてが保護されるためです。

彼のコードは次のとおりです。

(function(){
    var foo = "Hello, window";

    var bar = function(){
         var foo = "Hello, function";

         alert(window.foo);
    };

    bar();
}());

だから、私の問題はまったく同じです。オブジェクトがあります (handsontable を使用しますが、重要ではありません)。

var hotTraitement = new Handsontable

グローバルに定義します。したがって、 を表すことができfoo = "Hello, window"ます。そして、コールバック関数でそれを使用しようとしています:

function callback(){
    alert(window.hotTraitement);
} 

そしてそれは未定義です。そのため、関数でオブジェクトを取得する方法がわかりません。チュートリアルはそれを説明していません。誰か助けてくれませんか?

(誰かがそれを望むなら、ここにチュートのリンクがあります: https://www.youtube.com/watch?v=VSgSNQ1-KBo&spfreload=10 )

編集 :

これは私のコード全体です:

<script>
//Where I define my object "hotTraitement"
var container = document.getElementById('tab_traitement');
var hotTraitement = new Handsontable(container, {
    data: data_traitement,
    stretchH: 'all',
    minSpareRows: 1,
    observeChanges : true,
    rowHeaders: false,
    colHeaders: false,
    contextMenu: true
});
</script>

//The function where I want to get that object
<script>
function insertTraitementCallback(responseObject,ioArgs)
{   
    alert(hotTraitement);   
}

</script>

//My ajax request where I call my callback function
<script type="text/javascript">
    $(document).ready(function()
    {
        $('#submit_button_traitement').click(function()
        {
            $.post("ajaxUpdate.php",{arr:data_traitement,id_essai,table,idTable}, insertTraitementCallback,'json');         
        });
    });

</script>
4

2 に答える 2