通过脚本src属性传递javascript参数

时间:2013-07-08 16:29:14

标签: javascript

如果我有像

这样的javascript src
<script src="http://domain.com/js/script.js"> 

我可以在其末尾添加更多值

<script src="http://domain.com/js/script.js?state=1"> 

并在javascript中获取状态??

这个想法来自一种情况,我必须得到客户端解决方案并将其保存到会话但我不能通过PHP,所以我必须通过JavaScript获取它,但我不想显示来自源代码

我认为这是可能的,因为我看到许多来源确实有像这样的链接!

3 个答案:

答案 0 :(得分:11)

以防万一有人想要实际问题的实际答案,而不是诉诸全局变量和两个脚本标签:

<script src="http://example.com/js/script.js?state=1"></script>

在script.js中:

(function(){
  var myTags = document.getElementsByTagName("script");
  var src = myTags[myTags.length-1].src;
  var state = unescape(src).split("state=")[1].split("&")[0];
  alert(state);
}());

如果您需要传递大量内容,请使用通用的queryString解析器将脚本的queryString转换为对象。

答案 1 :(得分:3)

你能做这样的事吗?

<script>
    var state = 1;
</script>
<script src="http://domain.com/js/script.js"> 

答案 2 :(得分:1)

在调用JS之前给出变量。但是如果你不想用vars污染Global,你可以尝试PHP方法:

制作一个PHP文件在标题中声明它将是一个javascript,用变量抓取它并使用$_GET值来做你想做的任何事情并输出格式化的js文件

<script src="http://domain.com/js/script.php?state=1" />

<?php
// We'll be outputting a JS
header('Content-type: text/javascript');

$phpState = $_GET['state'];
?>

function someCommonJS(){
    var myState = "<?=$phpState;?>"; /*printing php var into js*/
}

<?php
/* some more php*/
?>

/*some more js*/

通过这种方式,文件可以随意显示,而用户无法看到通过js显示的所有if else