Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在JS脚本中向src源添加变量?_Javascript - Fatal编程技术网

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

Javascript 如何在JS脚本中向src源添加变量?,javascript,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 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>

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

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

实际上,您的变量username是一个JavaScript变量。在标记之外,HTML不知道它。您需要从JavaScript中插入标记。描述如何执行此操作

在您的情况下,它将是:

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

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

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

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

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

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

请注意,我已经打断了该部分,这样它就不会被假定为主脚本块的结束结束标记!\用于转义字符串内的双引号。

您可以在JavaScript中使用以下命令更改任何元素的src:

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

另一个选项是使用示例:myElement.setAttribute'src','srcValue';这不是答案,因为他们问的是如何使用动态url加载脚本,而不是如何更改已加载脚本上的url