Question

J'ai un page_layout dans lequel je prévois d'être utilisé par de nombreuses pages, cette mise en page a un composant WebPart de champ de recherche, pour le moment, elle a un "Recherche..." générique.Cependant, ce que je veux, c'est le changer pour qu'il dise « Recherchez sur la page sur laquelle vous vous trouvez ».Je n'ai pas de difficulté à obtenir le nom de la page sur laquelle je me trouve, mais à changer l'invite initiale en ce que je veux.J'ai essayé des choses évidentes comme document.getElementById('NBSwebpartSiteSearch').InitialPrompt = 'test';

Était-ce utile?

La solution

Intéressant - le comportement de 2013 utilise une fonction dans l'événement de flou du champ de recherche pour remplir ou masquer le terme "Rechercher..." selon le cas - je suppose qu'il faut prendre en charge les anciennes versions d'IE au lieu d'utiliser la propriété d'espace réservé...

Donc!Ce dont vous avez besoin, c'est de :

//use this instead of immediate or jQuery ready because we want to manipulate SP generated markup
_spBodyOnLoadFunctionNames.push("searchPromptSetup");

function searchPromptSetup() {
    function spPromptHider(searchDOMElement) {
        //make sure you have a valid object 
        if (searchDOMElement) {
            //give it a placeholder if it doesn't already have one
            if (!searchDOMElement.placeholder) searchDOMElement.placeholder = "Search in whatever page you are on";
            /*use SP's javascript to hide the 'Search...' prompt, note the $ here is not the jQuery alias...
                the OR assignment is my lazy way of allowing the function to be used in the blur event later... */
            var control = $getClientControl(searchDOMElement) || $getClientControl(this);
            control.hidePrompt();
        }
    }

    var searchBox = document.getElementById('<yoursearchboxid>');
    // if you don't add this listener to the blur event it will just reset to 'Search...'
    searchBox.addEventListener("blur", spPromptHider);
    spPromptHider(searchBox);
}

Ce qui précède ne fonctionnera qu'avec les navigateurs prenant en charge l'attribut placeholder...mais vous pouvez le développer pour ajouter un support pour ceux qui ne le font pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top