2014-04-26 102 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>一部分,它不認爲作爲主腳本塊的末尾結束標記! \"用於轉義字符串內的雙引號。