Get parameters of .js file

2020-04-11 18:06发布

I have a javascript file that I reference in HTML with standard <script src="foo.js?param"></script>. In the file I want to distinguish e.g. loading the file with foo.js from foo.js?auto and foo.js?noauto=true, but not if the file is renamed to bar.js and referenced with the same parameter. How can I accomplish this, preferably not using any framework?

2条回答
家丑人穷心不美
2楼-- · 2020-04-11 18:45

Take a look a scriptaculous' approach:

var js = /scriptaculous\.js(\?.*)?$/;
$$('head script[src]').findAll(function(s) {
  return s.src.match(js);
}).each(function(s) {
  var path = s.src.replace(js, ''),
  includes = s.src.match(/\?.*load=([a-z,]*)/);
  (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider,sound').split(',').each(
   function(include) { Scriptaculous.require(path+include+'.js') });
});

I think it runs through all script elements and finds the reference to itself, and then parses that URL.

查看更多
甜甜的少女心
3楼-- · 2020-04-11 19:06

If you want to do it reliably, then you need to provide different JS for each URL. You could generate it with a server side script.

If you want to do it in pure JS, then you can getElementsByTagName('script') and assume that last script is the one that matched (it might not be, e.g. if script elements are being added using DOM after the page has loaded).

查看更多
登录 后发表回答