Pergunta

Na minha biblioteca de documentos, ocultei com êxito o botão Abrir no Explorer usando o código a seguir (código 1).

<script type="text/javascript"> 
  _spBodyOnLoadFunctionNames.push("hideToolbarItem()");    
  function hideToolbarItem() {   
    var doc = document.getElementsByTagName('ie:menuitem');      
    for (var i = 0; i < doc.length; i++){     
          itm = doc[i];
          if (itm.id.match('OpenInExplorer')!=null){
             itm.hidden=true;          
          }   
    }  
  } 
</script>

Agora preciso ocultar o botão Conectar ao Outlook

Tentei fazer com que o código se referisse aos dois botões do menu, mas não funcionou (código 2)

<script type="text/javascript"> 
     _spBodyOnLoadFunctionNames.push("hideToolbarItem()");
     function hideToolbarItem() {
       var doc = document.getElementsByTagName('ie:menuitem');
       for (var i = 0; i < doc.length; i++){     
       itm = doc[i];          
        if (itm.id.match('OpenInExplorer')!=null)  
        if (itm.id.match('OfflineButton')!=null){
             itm.hidden=true;          
}   
}  
} 
</script> 

Também usar o mesmo código duas vezes não funciona (código 3)

<script type = "text/javascript" >
    _spBodyOnLoadFunctionNames.push("hideToolbarItem()");
    function hideToolbarItem() {
        var doc = document.getElementsByTagName('ie:menuitem');
        for (var i = 0; i < doc.length; i++) {
            itm = doc[i];
            if (itm.id.match('OpenInExplorer') != null) {
                itm.hidden = true;
            }
        }
    }
</script>
<script type="text/javascript">
    _spBodyOnLoadFunctionNames.push("hideToolbarItem()");
    function hideToolbarItem() {
        var doc = document.getElementsByTagName('ie:menuitem');
        for (var i = 0; i < doc.length; i++) {
            itm = doc[i];
            if (itm.id.match('OfflineButton') != null) {
                itm.hidden = true;
            }
        }
    }
</script> 

Ambos os códigos 2 e 3 resultam no reaparecimento do Open In Explorer e no desaparecimento do Connect To Outlook.Preciso que ambos sejam eliminados! Não sei muito sobre Javascript, então uma explicação de onde estou errando seria apreciada :-)

Foi útil?

Solução

Tente usar abaixo:

<script type="text/javascript"> 

_spBodyOnLoadFunctionNames.push("hideToolbarItem()");    

function hideToolbarItem() {   
   var doc = document.getElementsByTagName('ie:menuitem');      
   for (var i = 0; i < doc.length; i++)   {     
       itm = doc[i];          
       if (itm.id.match('OpenInExplorer')!=null)  
       {             itm.hidden=true;          }
       if (itm.id.match('OfflineButton')!=null)        
       {             itm.hidden=true;          }   
   }  
}

</script> 

Outras dicas

É sempre uma abordagem melhor usar o Modelo de Objeto do SharePoint para esse tipo de coisa, em vez de ocultar os elementos HTML físicos da faixa de opções com JavaScript.

Aqui estão alguns links para você começar (o segundo fala especificamente ao botão "Abrir no Explorer"):

http://www.learningsharepoint.com/2010/10/24/hide-ribbon-buttons-sharepoint-2010-programmaticamente/

http://sharepointegg.blogspot.com/2010/02/remove-button-from-ribbon-in-sharepoint.html

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