![](/img/trans.png)
[英]Add Firebase WebApp Source into vanilla JS or JSON without <script 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.