[英]pass a variable from js to jquery
想知道如何从加载js传递变量,例如:
<script type="text/javascript" src="script.js?myVar=myValue"></script>
并使用并传递给script.js本身? 我之前知道声明变量,但是我在寻找url方式。
提前致谢。
javascript将无法访问该值。 服务器将不得不寻找该值,并代表您将该值插入呈现的javascript中。
通常,这种模式更像这样:
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">
ObjFromScript.myVar = 'myValue';
ObjFromScript.doStuff();
</script>
您必须在文档中找到<script>
标记并提取参数。 使用此网站的一个突出示例是带有#xfbml=1
标签的Facebook。
但是,适当/不错的方法不是将任何代码放入函数中,而是将函数放入script.js
,然后调用someFunction(myValue);
。
您可以在客户端或服务器上执行此操作。 在客户端上,获取script
元素并解析src
属性。
<script id="myScript" src="script.js?myVar=foo"></script>
<script>
var s = document.getElementById('myScript');
s.src; // parse it and extract myVar
</script>
在服务器上,设置路由,以便script.js
转到以服务器端语言(如PHP)编写的某些处理程序。 在这种情况下,您可以动态输出script.js
。 这是PHP中的示例。
script.js => script.php
<?php
header('Content-Type: application/javascript');
$myVar = $_GET['myVar'];
?>
// optionally expose myVar inside JavaScript
var myVar = <?php json_encode($myVar) ?>;
// regular JavaScript
alert(myVar);
var x = 10;
您可以使用document.currentScript
,但是它不受广泛支持。
var matches = document.currentScript.src.match(/\?myVar=([^&]+)/),
myVarParam = matches && matches[1];
或者,您可以尝试获取具有匹配URL的script
元素并解析出GET参数。
var scriptPath = 'path/to/this/script.js',
matches = $('script[src^="' + scriptPath + '"]').attr('src').match(/\?myVar=([^&]+)/),
myVarParam = matches && matches[1];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.