如何将参数传递给脚本标签?

2022-08-30 04:39:07

我阅读了教程DIY小部件 - 如何将您的网站嵌入到另一个网站上,由Nic博士为XSS Widgets。

我正在寻找一种将参数传递给脚本标签的方法。例如,要使以下工作:

<script src="http://path/to/widget.js?param_a=1&amp;param_b=3"></script>

有没有办法做到这一点?


两个有趣的环节:


答案 1

我很抱歉回答了一个超级老的问题,但在花了一个小时与上述解决方案作斗争之后,我选择了更简单的东西。

<script src=".." one="1" two="2"></script>

在上面的脚本中:

document.currentScript.getAttribute('one'); //1
document.currentScript.getAttribute('two'); //2

比jquery OR url解析容易得多。

您可能需要来自@Yared Rodriguez对IE的回答的doucment.currentScript的polyfil:

document.currentScript = document.currentScript || (function() {
  var scripts = document.getElementsByTagName('script');
  return scripts[scripts.length - 1];
})();

答案 2

最好在 html5 中使用功能 5 数据属性

<script src="http://path.to/widget.js" data-width="200" data-height="200">
</script>

在脚本文件中,http://path.to/widget.js 您可以通过以下方式获取参数表:

<script>
function getSyncScriptParams() {
         var scripts = document.getElementsByTagName('script');
         var lastScript = scripts[scripts.length-1];
         var scriptName = lastScript;
         return {
             width : scriptName.getAttribute('data-width'),
             height : scriptName.getAttribute('data-height')
         };
 }
</script>