Javascript 这是指IE8中的窗口
据我所知,它在chrome、FF和IE>9中工作。 但是,它在IE8中不起作用。控制台显示“对象不接受方法或属性”(或者类似的,它是西班牙语的,我不知道确切的英语单词) 经过一些调试后,我注意到Javascript 这是指IE8中的窗口,javascript,internet-explorer-8,this,Javascript,Internet Explorer 8,This,据我所知,它在chrome、FF和IE>9中工作。 但是,它在IE8中不起作用。控制台显示“对象不接受方法或属性”(或者类似的,它是西班牙语的,我不知道确切的英语单词) 经过一些调试后,我注意到这个没有我在里面的功能,而是窗口对象 var slider = function(sel, pagination, paginationThumbs, form_factor) { var that = this; (some code) this.init = functio
这个
没有我在里面的功能,而是窗口
对象
var slider = function(sel, pagination, paginationThumbs, form_factor)
{
var that = this;
(some code)
this.init = function(sel,pagination,paginationThumbs,form_factor)
{
(more code)
}
this.init(sel,pag,paginationThumbs,form_factor); //it blows here
};
后来我这样叫它
slider('.sliderClass',3,true,0.75);
知道会发生什么吗?使用
新滑块('.sliderClass',3,真,0.75)
而不是
滑块('.sliderClass',3,真,0.75)
可能发生的事情是
这实际上是指IE出于某种奇怪的原因不允许访问的窗口对象
您可以做的是在调用slider时,像调用newslider(/*params*/)一样调用它代码>
或者不是说this.init=function(){}代码>
您可以将var init=function(){}代码>
然后调用它就像init()一样简单代码>
这些都是自定义属性和变量,没有说明函数是如何调用的,作用域应该是什么?该函数是否应该使用新滑块(…)
调用,但仅作为滑块(…)
调用?无论如何,应该没有任何理由阻止您分配.init
属性.edited进行澄清。既然您将此标记为正确答案:这是否意味着IE不允许访问窗口对象?我会很惊讶事实如此。我要说的是,“this”确实是window对象,它没有一个名为“init”的方法。这里提出的所有更改是否都是使其生效所必需的?
var slider = function(sel, pagination, paginationThumbs, form_factor)
{
var that = this;
(some code)
var init = function(sel,pagination,paginationThumbs,form_factor)
{
(more code)
}
init(sel,pag,paginationThumbs,form_factor); //it blows here
};