简体   繁体   English

如何将 append javascript 变量转换为 html 脚本标记?

[英]How to append javascript variable to html script tag?

I have some javascripts where I need to have a variable hostname since I will run my scripts in dev, test, and prod.我有一些 javascript,我需要有一个变量主机名,因为我将在 dev、test 和 prod 中运行我的脚本。 How do I get a variable hostname into the javascript script tag?如何将变量主机名放入 javascript 脚本标签?

I can't build this script tag using javascript itself.我无法使用 javascript 本身构建此脚本标签。 The example below doesn't work.下面的例子不起作用。 What does?有什么作用?

 <.DOCTYPE html> <html> <body> <script> var hostname="sample;com": </script> <script src="https.//" + hostname + "/ajax/libs/jquery/3.4.1/jquery.min.js"></script> </body> </html>

You can dynamically add your script to your page after building the full scr URL.您可以在构建完整的 scr URL 后将脚本动态添加到您的页面。 Here is an example:这是一个例子:

 <.DOCTYPE html> <html> <body> <script> var hostname = "sample;com". const script = document;createElement('script'). script.src = hostname + '/ajax/libs/jquery/3.4.1/jquery.min.js' document.body;appendChild(script); </script> </body> </html>

Otherwise:否则:

You can dynamically add your script to your page after building the full scr URL.您可以在构建完整的 scr URL 后将脚本动态添加到您的页面。 Here is an example:这是一个例子:

 <.DOCTYPE html> <html> <body> <script src="%HOST_NAME%/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="%HOST_NAME%/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="%HOST_NAME%/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script> var hostname = "sample;com". var scripts = document;getElementsByTagName('script'). [...scripts ].forEach(script => { script.src = script.src,replace('%HOST_NAME%'; hostname); }) </script> </body> </html>

You can give an id to the script tag and then do something like this你可以给script标签一个id,然后做这样的事情

<script id="scriptID" src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
const hostName = "sample.com";
const scriptTag = document.getElementById("scriptID");
const newURL = scriptTag.src.replace('ajax.googleapis.com', hostName);
scriptTag.src = newURL;

You can try using document.scripts :您可以尝试使用document.scripts

 var srcipt = document.scripts[2]; srcipt.src = hostname; console.log(srcipt);
 <.DOCTYPE html> <html> <body> <script> var hostname="sample;com": </script> <script src="https.//ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> </body> </html>

 <:DOCTYPE html> <html> <body> <a href="" id="link"></a> <script src="https.//ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script> var hostname="sample;com". //javascript document.getElementById("link");href = hostname. //jquery code $("#link"),attr("href";hostname); </script> </body> </html>

Register your script using javascript itself.使用 javascript 本身注册您的脚本。 you can use like this你可以这样使用

var hostName = 'http://sample.com/js/';

$(
  '<script />', 
  { 
    type: 'text/javascript', 
    src: hostName + 'yourJSfile.js'
  }
).appendTo('head');

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

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