繁体   English   中英

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

[英]How to add variable to src source in JS script?

这有效:

<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>

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

好吧,您可以使用客户端代码来做到这一点,但不能使用 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>  

实际上,您的变量username是一个 JavaScript 变量。 <script>标签之外,HTML 不知道它。 您需要从 JavaScript 中插入<script>标记。 这篇文章描述了如何做到这一点。

在您的情况下,它将是:

var my_script = document.createElement('script');
my_script.setAttribute('src','chat/script.php?room=1&username=' + username + '&draggable=1');
document.head.appendChild(my_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>标记中。

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM