2014-04-26 169 views
0

这工作:如何在JS脚本中添加变量到src源代码?

<script src="chat/script.php?room=1&username=John&draggable=1"></script> 

,这并不:

<script> 
var username="John"; 
</script> 
<script src="chat/script.php?room=1&username="+username+"&draggable=1"></script> 

不知道如何解决这个问题?

回答

6

嗯,你能做到这一点使用客户端的代码,但不使用HTML:

<script> 
var username="John"; 
var script = document.createElement('script'); 
script.src = "chat/script.php?room=1&username="+username+"&draggable=1"; 
document.getElementsByTagName('script')[0].parentNode.appendChild(script); 
</script> 
0

使用像PHP这样的服务器端语言。那src属性不是Javascript的一部分。只有script元素中的代码。

2

确实,您的变量username是一个JavaScript变量。在<script>标签之外,HTML不知道它。您需要在JavaScript中插入<script>标记。 this post描述了如何做到这一点。

在你的情况,这将是:

var my_script = document.createElement('script'); 
my_script.setAttribute('src','chat/script.php?room=1&username=' + username + '&draggable=1'); 
document.head.appendChild(my_script); 
2

script标签的内容是执行,其属性中的任何内容都不会被执行。您可以动态添加脚本标签,像这样:

var username="John"; 
var s = document.createElement('script'); 
s.src = "chat/script.php?room=1&username="+username+"&draggable=1"; 
documennt.getElementsByTagName("head")[0].appendChild(s); 

这将创建一个新的脚本元素,设置src属性,然后将其插入到HTML <head>标签。

0

另一种方法是使用document.write方法如下:

var username = "John"; 
document.write("<script src=\"chat/script.php?room=1&username=" + username 
       + "&draggable=1\"><" + "/script>"); 

注意,我打破</script>一部分,它不认为作为主脚本块的末尾结束标记! \"用于转义字符串内的双引号。