如何在JS脚本中向src源添加变量?

时间:2014-04-26 15:51:27

标签: javascript

这有效:

<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 个答案:

答案 0 :(得分:7)

嗯,你可以使用客户端代码,但不使用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>  

答案 1 :(得分: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 :(得分:2)

执行脚本标记的内容,其属性中不会执行任何内容。您可以动态添加脚本标记,如下所示:

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>标记。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

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

请注意,我打破了</script>部分,因此它不会被假定为主脚本块的结束标记! \"用于转义字符串中的双引号。

答案 5 :(得分:0)

您可以在JavaScript中使用此元素来更改任何元素的src

let myElement = (document.getElementById("myElementHTMLId").src =
"some string" + myVariable + "some string");