简体   繁体   中英

Change function from button click to page load

Is it possible to transform this code to generate when the page loads instead of when the button is clicked. I tried to change the events to load but it does not function. I do not know what I exactly I am doing wrong.

<p><button id="generate">Generate</button></p>
<p><code id="output"></code></p>

(function() {
 function IDGenerator() {
 
     this.length = 8;
     this.timestamp = +new Date;
     
     var _getRandomInt = function( min, max ) {
        return Math.floor( Math.random() * ( max - min + 1 ) ) + min;
     }
     
     this.generate = function() {
         var ts = this.timestamp.toString();
         var parts = ts.split( "" ).reverse();
         var id = "";
         
         for( var i = 0; i < this.length; ++i ) {
            var index = _getRandomInt( 0, parts.length - 1 );
            id += parts[index];  
         }
         
         return id;
     }

     
 }
 
 
document.addEventListener( "DOMContentLoaded", function() {
    var btn = document.querySelector( "#generate" ),
        output = document.querySelector( "#output" );
        
    btn.addEventListener( "click", function() {
        var generator = new IDGenerator();
        output.innerHTML = generator.generate();
        
        }, false);
 });

 })();

There is small bug. Just change the document object to window like below

window.addEventListener('DOMContentLoaded', function() {
});

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