我正在搜索将窗口对象访问到函数中(实际上是一个 ajax 回调函数,但没关系)。所以,我找到了一个 tuto,那个人解释了我的问题以及为什么我有这个问题,但他没有解决它。
好吧,当我想访问窗口对象并创建一个警报时,该变量是未定义的。我明白为什么(我认为)。这是因为当全局变量在函数中时,该函数中的所有内容都受到保护。
这是他的代码:
(function(){
var foo = "Hello, window";
var bar = function(){
var foo = "Hello, function";
alert(window.foo);
};
bar();
}());
所以,我的问题是完全一样的。我有一个对象(可以动手操作,但并不重要)。
var hotTraitement = new Handsontable
我在全局中定义它。所以它可以代表foo = "Hello, window"
。我正在尝试在我的回调函数中使用它:
function callback(){
alert(window.hotTraitement);
}
它是未定义的。所以我不知道如何在我的函数中获取我的对象,tuto 也没有解释它。有人能帮助我吗 ?
(如果有人想要,这里是教程的链接: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>