Skip to Content
Menu

singleResultDrawer()

Show the header drawer when redirected to the only result after a single search result was available to explain it.

JavaScript February 7, 2021

Usage

This function runs automatically, so it is not called manually. Is this incorrect?

Additional Notes

On a single search result, the user is redirected automatically to that result and then presented a header drawer element with an explanation and a search field.

Was this page helpful? Yes No


    A feedback message is required to submit this form.


    Please check that you have entered a valid email address.

    Enter your email address if you would like a response.

    Thank you for your feedback!

    Source File

    Located in /assets/js/modules/search.js on line 420.

    No Hooks

    This function does not have any filters or actions available. Request one?
    JavaScript
    nebula.singleResultDrawer = async function(){
        await nebula.yield();
    
        let searchTerm = nebula.get('rs');
        if ( searchTerm ){
            searchTerm = searchTerm.replaceAll(/\%20|\+/g, ' ').replaceAll(/\%22|"|'/g, '');
            jQuery('#searchform input[name="s"]').val(searchTerm);
    
            nebula.dom.document.on('click', '#nebula-drawer .close', function(){
                window.history.replaceState({}, document.title, nebula.removeQueryParameter('rs', window.location.href));
                jQuery('#nebula-drawer').slideUp();
                return false;
            });
        }
    };

    Override

    To override or disable this JavaScript function, simply redeclare it with the exact same function name. Remember: Some functionality is conditionally loaded via dynamic imports, so if your function is not overriding properly, try listening for a DOM event (described below).

    JavaScript

    For non-module import functions:

    nebula.singleResultDrawer = function(){
        //Write your own code here, leave it blank, or return false.
    }


    For dynamically imported module function overrides:

    jQuery(window).on('load', function(){
        nebula.singleResultDrawer = function(){
            //Write your own code here, leave it blank, or return false.
        }
    });


    Custom Nebula DOM events do also exist, so you could also try the following if the Window Load listener does not work:

    jQuery(document).on('nebula_module_loaded', function(module){
        //Note that the module variable is also available to know which module specifically was imported
        if ( typeof nebula.singleResultDrawer === 'function' ){
            nebula.singleResultDrawer = function(){
                //Write your own code here, leave it blank, or return false.
            }
    	}
    });