将键值对传递给JavaScript文件

Ema*_*sev 0 html javascript

您可以将键值对传递给JavaScript文件,如下所示:

<script type="text/javascript" src="http://www.example.com/script.js?key=value"></script>
Run Code Online (Sandbox Code Playgroud)

CMS*_*CMS 6

scriptaculous使用该技术(参见第54行):

<script type="text/javascript" src="scriptaculous.js?load=effects,dragdrop">
</script>
Run Code Online (Sandbox Code Playgroud)

你可以通过检查script页面上元素的来源来实现这一点,我给你一个框架独立的功能:

function getScriptVariable(scriptName, key) {
  var scripts = document.getElementsByTagName('script'),
      n = scripts.length, scriptSource, i, r;

  for (i = 0; i < n; i++) {
    scriptSource = scripts[i].src;
    if(scriptSource.indexOf(scriptName)>=0) {
      r = new RegExp("[\\?&]"+key+"=([^&#]*)");
      var keyValues = r.exec(scriptSource);
      return keyValues[1];
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以按照你想要的方式嵌入一个脚本:

<script type="text/javascript" src="myScript.js?myKey=myValue">
</script>
Run Code Online (Sandbox Code Playgroud)

并以这种方式使用上述功能:

var value = getScriptVariable('myScript.js', 'myKey'); // "myValue"
Run Code Online (Sandbox Code Playgroud)