【问题标题】:How to add variable to src source in JS script?如何在 JS 脚本中向 src 源添加变量?
【发布时间】:2014-06-12 08:27:31
【问题描述】:

这行得通:

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

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

【问题讨论】:

    标签: javascript


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      确实,您的变量 username 是一个 JavaScript 变量。在&lt;script&gt; 标记之外,HTML 不知道它。您需要在 JavaScript 中插入 &lt;script&gt; 标记。 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);
      

      【讨论】:

        【解决方案3】:

        脚本标签的内容被执行,其属性中的任何内容都不会被执行。您可以像这样动态添加脚本标签:

        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 的&lt;head&gt; 标记中。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

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

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

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

            【讨论】:

              【解决方案6】:

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

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

              【讨论】:

              • 另一种选择是使用setAttribute 示例:myElement.setAttribute('src', 'srcValue');
              • 不是答案,因为他们询问如何使用动态 url 加载脚本,而不是如何更改已加载脚本上的 url
              猜你喜欢
              • 2021-04-07
              • 1970-01-01
              • 2011-11-09
              • 1970-01-01
              • 2017-01-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多