获取文件的类名

时间:2018-02-06 14:19:54

标签: javascript jquery

我正在使用函数$.getScript('myFile.js')加载脚本。我想知道myFile.js文件的类名是什么。我怎么能这样做?

myFile.js的内容是:

class myFile {
    static Do_something() {
        console.log('Hello');
    }
}

1 个答案:

答案 0 :(得分:0)

使用ajax和一些正则表达式...

function getClassNamesInFile(file){
  return new Promise(done=>{
    $.ajax({
      dataType: 'text',
      url: file
    }).done(txt=>{
      var classes = (txt.match(/class ([a-zA-Z0-9]+)/g) || {})
        .map(itm=>itm.split(" ").pop());
      done(classes);
    });
  });
}

像这样使用它......

getClassNamesInFile('myFile.js').then(function(classNames){
  console.log(classNames);
});

Here's a demo

如果您还需要添加文件(例如$.getScript),您可以这样做......

function getClassNamesInFile(file, runFile=false){
  return new Promise(done=>{
    $.ajax({
      dataType: 'text',
      url: file
    }).done(txt=>{
      var classes = txt.match(/class ([a-zA-Z0-9]+)/g)
        .map(itm=>itm.split(" ").pop());
      if(!runFile) return done(classes);
      let scr = document.createElement("script");
      scr.onload = ()=>done(classes);
      scr.setAttribute('src', file);
      document.body.appendChild(scr);
    });
  });
}

getClassNamesInFile('myFile.js', true).then(function(classNames){
  console.log(classNames);
  if(~classNames.indexOf('myFile')) myFile.Do_something();
});

Here's a demo for that ..