Pergunta

Tenho um page_layout no qual pretendo ser utilizado por muitas páginas, esse layout de página possui uma webpart searchbox, no momento possui um 'Search...' genérico.No entanto, o que eu quero é alterá-lo para que diga 'Pesquise em qualquer página em que você estiver'.Não estou tendo problemas em obter o nome da página em que estou, mas em alterar o prompt inicial para o que desejo.Eu tentei coisas óbvias como document.getElementById('NBSwebpartSiteSearch').InitialPrompt = 'test';

Foi útil?

Solução

Interessante - o comportamento de 2013 usa uma função no evento de desfoque da caixa de pesquisa para preencher ou ocultar o termo 'Pesquisar...' conforme apropriado - suponho que seja compatível com versões antigas do IE em vez de usar a propriedade de espaço reservado...

Então!O que você precisa é:

//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);
}

O acima só funcionará com navegadores que suportam o atributo placeholder...mas você pode expandi-lo para adicionar suporte para aqueles que não o fazem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top