如果我有像
这样的javascript src<script src="http://domain.com/js/script.js">
我可以在其末尾添加更多值
<script src="http://domain.com/js/script.js?state=1">
并在javascript中获取状态??
这个想法来自一种情况,我必须得到客户端解决方案并将其保存到会话但我不能通过PHP,所以我必须通过JavaScript获取它,但我不想显示来自源代码
我认为这是可能的,因为我看到许多来源确实有像这样的链接!
答案 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
。