Javascript

A few notes when writing javascript in pagespeed optimization

document.write

Never use function document.write to append HTML on the document, use the jQuery function instead $('body').append

Events

See all javascript events below:

//ready document
_HWIO.docReady(function(){});

//all js in page ready include jquery
_HWIO.readyjs(function(){ });

//window ready event
_HWIO.winReady(function(){ });

//wait for exist `jQuery` object
_HWIO.waitForExist(function(){
  jQuery('.woocommerce-product-gallery').css('opacity','');
}, ['jQuery']/*, 500,20, 'custom-name'*/);

_HWIO.waitForExist(function(){
  //your code
}, function(){
  return typeof jQuery!='undefined';
});

Run script with conditional:

To know JS, CSS name (handle) you can right-click on your page > select "View page source" > find the JS or CSS URL you want to find the handle name. You can see id="example-xxx-js" or id="example-yyy-css" => the "example-xxx" and "example-yyy" will be JS handle name or CSS handle name of that JS/CSS file.

We will merge all JS and CSS to one file and load it lazy a bit. You can also find the original JS files by adding parameters ?merge_js=0 at the end of the URL. Same for CSS ?merge_css=0

In addition, you may want to specify which JS code will run immediately and delay until the user interacts on the web page.

Before executing any Javascript code, there is a core inline JS that is placed at the top of the page. And you will want to append your inline js after it, then use hpp_print_initjs hook - an example:

the event hpp_allow_js to allow / not allow, decide which JS file should be run or not.

Last updated