首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过脚本src属性传递javascript参数

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

Stack Overflow用户
提问于 2013-07-09 00:29:14
回答 3查看 11.3K关注 0票数 5

如果我有一个javascript src,比如

代码语言:javascript
复制
<script src="http://domain.com/js/script.js"> 

我可以在它的末尾添加更多的值吗

代码语言:javascript
复制
<script src="http://domain.com/js/script.js?state=1"> 

并在该javascript中获取状态??

这个想法来自于一种情况,我必须获得客户端解析并将其保存到会话中,但我不能通过php获得它,所以我必须通过javascript获得它,但我不想显示从源代码裸露的脚本。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-09 00:32:09

你就不能做这样的事吗?

代码语言:javascript
复制
<script>
    var state = 1;
</script>
<script src="http://domain.com/js/script.js"> 
票数 4
EN

Stack Overflow用户

发布于 2013-07-09 01:49:51

以防有人想要实际问题的实际答案,而不是求助于全局变量和两个脚本标记:

代码语言:javascript
复制
<script src="http://example.com/js/script.js?state=1"></script>

Script.js内部:

代码语言:javascript
复制
(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转换为对象。

票数 12
EN

Stack Overflow用户

发布于 2013-07-09 00:38:20

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

创建一个PHP文件,在头部声明它将是一个javascript,用$_GET抓取它的值并输出格式化的js文件。

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

代码语言:javascript
复制
<?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*/

这样,文件就像你想要的那样出现了,而用户不能看到你所有的if else,如果通过js可以看到的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17531568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档