简体   繁体   中英

How to use JS variable value in html page

I have js variable value, I want to add the variable value in html page. The randomNo value change based on time.

    <script>
        var randomNo = 93339;
   </script>
    <script type="text/javascript" src="js/plugins-gen.js?ver={$randomNo}"></script>
   <script type="text/javascript" src="js/core-gen.js?ver={$randomNo}"></script>

How can i get the variable value?

I'd recommend setting the attribute values with JS.

<script>
        var randomNo = 93339;
document.getElementById('plugins-gen.js').src="js/plugins-gen.js?ver="+randomNo;
document.getElementById('core-gen.js').src="js/core-gen.js?ver="+randomNo;
   </script>
    <script id="plugins-gen.js" type="text/javascript"></script>
   <script id="core-gen.js" type="text/javascript"></script>

You can't refer to Javascript variables in HTML, only in Javascript. So you need to create those script elements dynamically:

<script>
var randomNo = 93339;
var script1 = document.createElement('script');
script1.src = 'js/plugins-gen.js?var=' + randomNo;
document.head.appendChild(script1);
var script2 = document.createElement('script');
script2.src = 'js/core-gen.js?var=' + randomNo;
document.head.appendChild(script2);
</script>

If you need to do this with lots of files, you can put them all into an array and process them in a loop.

Another answer, this time with a rather different approach.

<script>
    var randomNo = 93339;
    var scripts = document.getElementsByTagName('script'); // all <script> tags
    for (var i = 0; i < scripts.length; i++) {
       scripts[i].src = scripts[i].src.replace('{$randomNo}',randomNo); // replace '{$randomNo}' with the variable's value
    }
</script>
<script type="text/javascript" src="js/plugins-gen.js?ver={$randomNo}"></script>
<script type="text/javascript" src="js/core-gen.js?ver={$randomNo}"></script>

This should replace the placeholders with the actual value.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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