関数へのウィンドウオブジェクトへのアクセスを探しています(実際には、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>