这个关键字结果在ie11中未定义

时间:2018-03-08 11:53:01

标签: javascript internet-explorer-11 perfect-scrollbar

我有这个奇怪的问题:我有一个页面可以在除IE11之外的所有主要浏览器上正常工作,其中页面无法加载。

我在11中检查了控制台并发现了这个错误:

enter image description here

错误是指SetStyle函数,它设置滚动条的样式:

class ScrollBarStyle{
  init(){
    return{
      setStyle: this._setStyle
    }
  }
  _setStyle(node,color,targetClass){
    let self = this;
    let children = Array.from(node.children); // I have set Array.from polifyll for ie11
    if(children){
      children.forEach(function(el){
        if(el.classList.contains(targetClass)){
            el.style.width = '10px';
            el.style.background = color;
            el.style.opacity = '1'
            return
        }
        self.setStyle(el,color,targetClass)
        })      
      }
    }
  }

这是我用来以这种方式设置滚动条样式的函数:

  _initMainScrollBar(){
    let self = this;
    this.contents.forEach(function(cnt){
      let ps = self.createScrollBar(cnt); //using perfect scrollbar plugin
      let color = self._RetrieveScrollBarColor(cnt)[0]; // get the main color of a section
      self.scrollBarStyle.setStyle(cnt,color,self.targetClass) //set the style
    })
  }

我不知道可能是什么问题,此代码适用于其他浏览器,但我找不到有关ie11和this关键字的有用信息。

显然,做var n=this n结果未定义,

老实说,我不知道可能出现什么问题。

我使用babel与gulp:

gulp.task('js',()=>{
  return browserify({
    entries: ['./src/js/main.js'],
    debug:true
   })
  .bundle()
  .pipe(source('bundle.js'))
  .pipe(buffer())
  .pipe(babel({
    presets: ['env'],
    compact: true
  }))
  .pipe(uglify())
  .pipe(gulp.dest('./src/dist/js/'))
  .pipe(browserSync.stream());
});

我也为ie11插入了Array.from polyfill,所以我不认为是问题

有人可以给我一些关于这个问题的提示吗?也许是与完美滚动条插件相关的东西?

0 个答案:

没有答案