将参数传递给JavaScript文件

将参数传递给JavaScript文件

我经常会有一个我想要使用的JavaScript文件,需要在我的网页中定义某些变量。

所以代码是这样的:

<script type="text/javascript" src="file.js"></script><script type="text/javascript">
   var obj1 = "somevalue";</script>

但我想做的是:

<script type="text/javascript" 
     src="file.js?obj1=somevalue&obj2=someothervalue"></script>

我尝试了不同的方法,最好的方法是解析查询字符串,如下所示:

var scriptSrc = document.getElementById("myscript").src.toLowerCase();

然后搜索我的价值观。

我想知道是否有另一种方法可以做到这一点,而无需构建一个解析我的字符串的函数。

你们都知道其他方法吗?


拉风的咖菲猫
浏览 509回答 3
3回答

慕桂英546537

如果可能的话,我建议不要使用全局变量。使用命名空间和OOP将参数传递给对象。此代码属于file.js:var&nbsp;MYLIBRARY&nbsp;=&nbsp;MYLIBRARY&nbsp;||&nbsp;(function(){ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;_args&nbsp;=&nbsp;{};&nbsp;//&nbsp;private &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init&nbsp;:&nbsp;function(Args)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_args&nbsp;=&nbsp;Args; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;some&nbsp;other&nbsp;initialising &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;helloWorld&nbsp;:&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert('Hello&nbsp;World!&nbsp;-'&nbsp;+&nbsp;_args[0]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;};}());在你的html文件中:<script&nbsp;type="text/javascript"&nbsp;src="file.js"></script><script&nbsp;type="text/javascript"> &nbsp;&nbsp;&nbsp;MYLIBRARY.init(["somevalue",&nbsp;1,&nbsp;"controlId"]); &nbsp;&nbsp;&nbsp;MYLIBRARY.helloWorld();</script>

慕斯709654

您可以传递具有任意属性的参数。这适用于所有最近的浏览器。<script&nbsp;type="text/javascript"&nbsp;data-my_var_1="some_val_1"&nbsp;data-my_var_2="some_val_2"&nbsp;src="/js/somefile.js"></script>在somefile.js中,您可以通过以下方式传递变量值:........var&nbsp;this_js_script&nbsp;=&nbsp;$('script[src*=somefile]');&nbsp;//&nbsp;or&nbsp;better&nbsp;regexp&nbsp;to&nbsp;get&nbsp;the&nbsp;file&nbsp;name..var&nbsp;my_var_1&nbsp;=&nbsp;this_js_script.attr('data-my_var_1');&nbsp;&nbsp;&nbsp;if&nbsp;(typeof&nbsp;my_var_1&nbsp;===&nbsp;"undefined"&nbsp;)&nbsp;{ &nbsp;&nbsp;&nbsp;var&nbsp;my_var_1&nbsp;=&nbsp;'some_default_value';}alert(my_var_1);&nbsp;//&nbsp;to&nbsp;view&nbsp;the&nbsp;variable&nbsp;valuevar&nbsp;my_var_2&nbsp;=&nbsp;this_js_script.attr('data-my_var_2');&nbsp;&nbsp;&nbsp;if&nbsp;(typeof&nbsp;my_var_2&nbsp;===&nbsp;"undefined"&nbsp;)&nbsp;{ &nbsp;&nbsp;&nbsp;var&nbsp;my_var_2&nbsp;=&nbsp;'some_default_value';}alert(my_var_2);&nbsp;//&nbsp;to&nbsp;view&nbsp;the&nbsp;variable&nbsp;value

倚天杖

我遇到的另一个想法是为元素分配一个“id”并将参数作为data- *属性传递。生成的标记看起来像这样:<script&nbsp;id="helper"&nbsp;data-name="helper"&nbsp;src="helper.js"></script>然后,脚本可以使用id以编程方式定位自己并解析参数。给定前一个标记,可以像这样检索名称:var&nbsp;name&nbsp;=&nbsp;document.getElementById("helper").getAttribute("data-name");我们得到name = helper
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript