MediaWiki Discussão:Common.js

O conteúdo da página não é suportado noutras línguas.

Sobre este espaço de discussão

Translatewiki | MediaWiki | Wikipédias: en · pt · de · fr · pl · ja · it · nl · es
Pode haver documentação para esta mensagem da interface ou skin no MediaWiki.org ou no TranslateWiki.
A página faz parte da interface do MediaWiki, e só pode ser editada por administradores.
Para solicitar uma alteração nesta página, adicione {{editar página protegida}}, juntamente com uma descrição do seu pedido. Considere anunciar nos diálogos comunitários as discussões que adicionar aqui, para que mais pessoas possam comentar a respeito.
Principais Mensagens da Interface do MediaWiki
Instrucões da janela de edição Wikimedia-copyrightwarning · Summary · Wikimedia-editpage-tos-summary · Edittools.js · Edittools
Página de cadastro/login Fancycaptcha-createaccount · Prefs-help-email · Signupend · Loginend · Welcomecreation
Relacionadas à busca searchmenu-new · searchmenu-exists  · search-nonefound
Relacionadas aos módulos Noarticletext · Movepagetext · Movepage-moved
Avisos de edição Protectedpagewarning · Semiprotectedpagewarning · Anoneditwarning · Newarticletext | JS editintros: BLP editintro · Disambig editintro
Avisos de impedimentos para a edição Protectedpagetext · Nocreatetext · Blockedtext · Autoblockedtext  · Spamprotectiontext  · Titleprotected
Mensagens de ações administrativas Protect-text · Confirmdeletetext · Deletedtext
Este arquivo importa várias outras mensagens: /edit.js, /watchlist.js, /file.js, /secure.js, /IE60Fixes.js, /IPv6.js.

Funções e variáveis globais definidas pelo Common.js devem ser documentadas, principalmente se forem de interesse para autores de scripts.

Para ajudar a centralizar as discussões e manter tópicos relacionados, as seguintes páginas de discussão redirecionam aqui:

Atualização

Estou querendo atualizar a {{Oculto}} mas antes preciso que o javascript associado seja atualizado. Alguém poderia mover a página Usuário:Helder.wiki/Tabela recolhível.js para MediaWiki:CollapsibleTable.js e adicionar ao MediaWiki:Common.js o código a seguir:

/** Collapsible Tables ***********************************************************************
  *    Origem: [[w:en:MediaWiki:Common.js]]
  *     Ajuda: [[w:en:Wikipedia:Collapsible_tables]]
  *   Autores: [[w:en:User:R. Koot]]
  ********************************************************************************************/
  importScriptURI('http://pt.wikibooks.org/w/index.php?title=MediaWiki:CollapsibleTable.js&action=raw&ctype=text/javascript');

O script foi obtido na Wikipédia inglesa, na página w:en:MediaWiki:Common.js. Há também um trecho de css para adicionar ao MediaWiki:Common.css:

.collapseButton {         /* 'show'/'hide' buttons created dynamically by the        */
    float: right;         /* CollapsibleTables javascript in [[MediaWiki:Common.js]] */
    font-weight: normal;  /* are styled here so they can be customised.              */
    text-align: right;
    width: auto;
}

Obrigado. Helder 19h40min de 1 de abril de 2009 (UTC)

De nada
Faz diferença o lugar onde o código "cai"? - Jorge Morais 22h31min de 1 de abril de 2009 (UTC)
Não me faz pergunta difícil... Acho que não faz diferença, mas em breve faço os testes... Helder 22h58min de 1 de abril de 2009 (UTC)
Antes que eu esqueça, há um bom tempo eu tinha feito este teste. Depois disso, meu palpite é que deve fazer diferença em alguns casos... Mas admito que isso não é muito informativo. Helder 18h39min de 19 de julho de 2009 (UTC)

Remoção de scripts para importação

Gostaria que alguém removesse do js atual o código abaixo:

Obs.: o trecho seguinte está "compactado" de modo a despoluir visualmente o contexto da página toda.

 /** Importar módulos JavaScript e CSS *******************************************************
  *    Origem: [[:w:pt:MediaWiki:Common.js]]
  * Descrição: Simplifica o código para instalação de módulos pessoais JavaScript e CSS
  ********************************************************************************************/
 importedScripts = {}; // O objeto mantém registro dos scripts incluídos, então um script não será incluído duas vezes
 function importScript( page ) {
     if( importedScripts[page] ) {
         return;
     }
     importedScripts[page] = true;
     var url = wgScriptPath
             + '/index.php?title='
             + encodeURIComponent( page.replace( / /g, '_' ) )
             + '&action=raw&ctype=text/javascript';
     var scriptElem = document.createElement( 'script' );
     scriptElem.setAttribute( 'src' , url );
     scriptElem.setAttribute( 'type' , 'text/javascript' );
     document.getElementsByTagName( 'head' )[0].appendChild( scriptElem );
 }
 
 function importStylesheet( page ) {
     var sheet = '@import "'
               + wgScriptPath
               + '/index.php?title='
               + encodeURIComponent( page.replace( / /g, '_' ) )
               + '&action=raw&ctype=text/css";'
     var styleElem = document.createElement( 'style' );
     styleElem.setAttribute( 'type' , 'text/css' );
     styleElem.appendChild( document.pancreatectomias( sheet ) );
     document.getElementsByTagName( 'head' )[0].appendChild( styleElem );
 }

Já faz um tempo que existe uma versão atualizada do código acima no wikibits.js, conforme se vê nesta discussão. Então nossa versão está se sobrepondo àquela que deveria ser usada. Inclusive, tenho recebido um aviso de erro no "Error Console" do Iceweasel reclamando que "document.pancreatectomias" não é uma função... Helder 20h00min de 27 de abril de 2009 (UTC) Ah! e como se não bastasse, a caixa de busca tinha parado de funcionar por causa disso... , pois ao fazer uma cópia das novas funções do wikibits diretamente para o meu js pessoal (portanto sobrepondo as que estão aqui no common.js), voltou a funcionar "magicamente"... Helder 20h08min de 27 de abril de 2009 (UTC) Acabo de notar que há duas cópias da função "importStylesheet" e duas da "importScript" . As duas devem ser removidas, ou seja, além do código indicado no início, remova ainda:

Obs.: o trecho seguinte está "compactado" de modo a despoluir visualmente o contexto da página toda.

 /** Importar módulos JavaScript e CSS *******************************************************
  *    Origem: [[:w:en:MediaWiki:Common.js]]
  * Descrição: Simplifica o código para instalação de módulos pessoais JavaScript e CSS
  *     Autor: [[:w:en:User:AzaToth]]
  ********************************************************************************************/
 importedScripts = {}; // object keeping track of included scripts, so a script ain't included twice
 function importScript( page ) {
     if( importedScripts[page] ) {
         return;
     }
     importedScripts[page] = true;
     var url = wgScriptPath
             + '/index.php?title='
             + encodeURIComponent( page.replace( / /g, '_' ) )
             + '&action=raw&ctype=text/javascript';
     var scriptElem = document.createElement( 'script' );
     scriptElem.setAttribute( 'src' , url );
     scriptElem.setAttribute( 'type' , 'text/javascript' );
     document.getElementsByTagName( 'head' )[0].appendChild( scriptElem );
 }
 
 function importStylesheet( page ) {
     var sheet = '@import "'
               + wgScriptPath
               + '/index.php?title='
               + encodeURIComponent( page.replace( / /g, '_' ) )
               + '&action=raw&ctype=text/css";'
     var styleElem = document.createElement( 'style' );
     styleElem.setAttribute( 'type' , 'text/css' );
     styleElem.appendChild( document.createTextNode( sheet ) );
     document.getElementsByTagName( 'head' )[0].appendChild( styleElem );
 }

Mas você disse que algo quebrou quando você tentou remover. Quais foram os sintomas? Helder 13h30min de 1 de maio de 2009 (UTC)

Os azuis das discussões deixaram de aparecer. o_o' - Jorge Morais 15h48min de 2 de maio de 2009 (UTC)
Por acaso não foi só na hora de mostrar previsão, foi? Pois nesse caso é normal não aparecer (embora talvez devêssemos mudar isso, mas isso fica para outra hora...). Helder 16h21min de 2 de maio de 2009 (UTC)
Não, foi depois de salvar mesmo. =( Por isso que desfiz a edição. - Jorge Morais 16h36min de 2 de maio de 2009 (UTC)

Vamos fazer uma nova tentativa?

Na primeira remoção, você havia eliminado apenas uma das cópias. Podemos fazer o seguinte:

  1. Mover certo código css do MediaWiki:Monobook.css para o MediaWiki:Common.css, conforme pedido que fiz agorinha em MediaWiki Discussão:Monobook.css
  2. Remover as duas cópias dos scripts de importação de uma só vez (ficará assim): Isso não deverá quebrar a coloração das páginas de discussão, mas...
    1. Se quebrar: (1) confira quais são os scripts que estão sendo carregados ao exibir uma página de discussão (como esta, depois de salva e recarregada com o cache limpo). Para conferir, clique com o botão direito do mouse em uma página que deveria estar funcionando e use o comando "Exibir código fonte" (ou algo assim). No código fonte, procure (usando CTRL+F) por todas as ocorrências de "<script type="text/javascript" src=", e liste aqui os endereços que estiverem depois de "src=". (2) Confira se o console de erros está exibindo algum aviso ao carregar a página (menu ferramentas -> console de erros, no firefox). Se estiver, liste aqui também.
      • Alternativamente, deixe a sua edição sem reverter por um ou dois dias e eu confiro o problema "em funcionamento" (já que ele não é exageradamente grave, não irá incomodar muito por se ocorrer por um dia).
    2. Se não quebrar, este problema dos scripts está resolvido! (e provavelmente o gadget estará funcionando como esperado)

Helder 13h51min de 19 de maio de 2009 (UTC)

Feito nesta edição! Helder 18h41min de 19 de julho de 2009 (UTC)

Remoção de scripts específicos da Wikipédia

Há também um script específico que já foi útil na Wikipédia, mas que por aqui nunca foi necessário:

 /** Importar módulos JavaScript de páginas da fr.wikipedia.org ******************************
  * Obs: Importar os demais scripts utilizados da página francesa e utilizar o
  * importScript() acima, que opossui a mesma função.
  ********************************************************************************************/
 function loadJs(page)
 {
  document.write('<script type="text/javascript" src="' +
                'http://fr.wikipedia.org/w/index.php?title=' + page +
                '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
 }

Então conforme aqui, é melhor remover antes que usem . Helder 16h52min de 1 de maio de 2009 (UTC)

Removido. - Jorge Morais 15h54min de 2 de maio de 2009 (UTC)

Remoção de scripts para dicas

Eu estava olhando uma discussão na Wikipédia e me parece que já podemos remover os tooltips que estão em nosso js. No lugar deles, deveríamos usar/atualizar as mensagens do sistema MediaWiki:tooltip... (aviso: a página demora para carregar), como por exemplo a MediaWiki:Tooltip-n-portal/pt-br que foi atualizada recentemente. Helder 16h07min de 1 de maio de 2009 (UTC)

Aliás, pra variar, o código está duplicado no MediaWiki:Monobook.js. Inclusive no wikibits.js tem uns comentários indicando que a matriz ta não é mais usada (coisas como "Set up accesskeys/tooltips from the deprecated ta array." e "Now deal with evil deprecated ta") Helder 16h32min de 2 de maio de 2009 (UTC)
E as descrições vão para onde? Fica "MediaWiki:Tooltip-pt-userpage", por exemplo? - Jorge Morais 16h43min de 2 de maio de 2009 (UTC)
Sim. Pelo que vi, o texto que está entre aspas, como em ta['texto'], é o mesmo que vai depois do hífen no nome da mensagem do sistema, como em [[MediaWiki:Tooltip-texto]]. Mas parece que muitas das mensagens do sistema já tem seus valores padrão definidos iguais aos que estão no js, então na maior parte dos casos, não será preciso criar as mensagens, apenas remover o código do js. Confuso? Helder 16h58min de 2 de maio de 2009 (UTC)
Para ser mais específico, eis as diferenças entre os textos que estavam no script e os textos das mensagens de sistema:
No antigo script Nas mensagens de sistema
Adicionar comentário a essa discussão Iniciar uma nova seção
Renomear esta página Mover esta página
Ver a mensagem do sistema Ver a mensagem de sistema
<não existia> Ver a página de projeto
<não existia> Ver as diferenças entre as duas versões selecionadas desta página.
<não existia> Mostrar alterações que fez a este texto.
<não existia> Marcar como edição menor
<não existia> Prever as alterações, por favor utilizar antes de salvar!
Você é encorajado a registrar-se ou autenticar-se, mas isso não é mandatório. Você é encorajado a autenticar-se, apesar disso não ser obrigatório.
Lista de minhas contribuições Lista das suas contribuições
Minha discussão Sua página de discussão
Minha página de usuário Sua página de utilizador
<não existia> Recriar a página apesar de ter sido eliminada
<não existia> "reverter" reverte, com um só clique, as edições do último editor desta página.
<não existia> Salvar as alterações
<não existia> Procurar por páginas contendo este texto
<não existia> Ir a uma página com este exato nome, caso exista
Enviar um e-mail para este usuário Enviar um e-mail a este usuário
<não existia> Link permanente para esta versão desta página
<não existia> Versão para impressão desta página
<não existia> "desfazer" reverte esta edição exibindo a caixa de edição no modo de previsão, permitindo alterações adicionais e o uso do sumário de edição para justificativas.
Adicionar esta página aos artigos vigiados Adicionar esta página à sua lista de artigos vigiados
Acho que as versões antes e depois das mudanças acima são equivalentes, então não há necessidade de criar as mensagens com um valor diferente do padrão. Por outro lado, tenho comentários sobre as seguintes:
No antigo script Nas mensagens de sistema cm
Ver o conteúdo da página Ver a página de conteúdo acho assim está melhor
Ver a página de imagem Ver a página de arquivo este também
Minhas preferências Minhas preferências note que este está em primeira pessoa mas os outros estão em 3a. Acho que devemos alterar no translatewiki, para deixar todas consistentes. Feito
<não existia> Iniciar o upload acho que podemos trocar "upload" por "carregamento", no translatewiki Feito
Lista de páginas vigiadas Lista de artigos vigiados. acho que devemos trocar "artigos" por "páginas", no translatewiki Feito
Pesquisar neste wiki Pesquisar nesta wiki "wiki" é feminino, então melhorou, né?
Carregar imagens ou arquivos de mídia Carregar arquivos acho que melhorou, pois imagens também são arquivos
O que acham? Helder 19h28min de 19 de julho de 2009 (UTC)
Fiz as atualizações que precisavam ser feitas no translatewiki (alterei diversas mensagens que mencionavam "artigos" em vez de "páginas", para não ficar tão "Wikipédia"). Helder 15h40min de 31 de agosto de 2009 (UTC)

Remoção de scripts para títulos personalizados

Se entendi direito, o código

 /** Altera o título da página **************************************************************
  *    Origem: [[:w:en:MediaWiki:Common.js]]
  * Descrição: A função procura por um banner como:
  * <nowiki><div id="RealTitleBanner">Div that is hidden</nowiki>
  *   <nowiki><span id="RealTitle">title</span></nowiki>
  * <nowiki></div></nowiki>
  * An element with id=DisableRealTitle disables the function.
  ********************************************************************************************/
 
 rewritePageH1 = function() {
    try {
        var realTitleBanner = document.getElementById("RealTitleBanner");
        if (realTitleBanner) {
            if (!document.getElementById("DisableRealTitle")) {
                var realTitle = document.getElementById("RealTitle");
                var h1 = document.getElementsByTagName("h1")[0];
                if (realTitle && h1) {
                    h1.innerHTML = realTitle.innerHTML;
                    realTitleBanner.style.display = "none";
                }
            }
        }
    } 
 catch (e) {
    /* Algo deu errado. */
    }
 }
 addOnloadHook(rewritePageH1);

serve para alterar o título exibido em uma página (ver aqui e ainda melhor aqui).

Nós precisamos mesmo disto? Até hoje não soube de ninguém utilizando aqui, então não vejo por que dificultar a vida de quem tem uma conexão lenta... Quando alguém precisar ou perguntar sobre este recurso, podemos colocá-lo novamente, mas por hora acredito que o melhor é remover. Helder 16h58min de 1 de maio de 2009 (UTC)

Removido (não foste tu que os utilizaste uma vez?) - Jorge Morais 15h54min de 2 de maio de 2009 (UTC)
Pior que não... eu até tentei fazer isso na marra uns tempos atrás... Mas apesar da trabalheira, não gostei do resultado e deixei como estava... (eu gosto de dar um clique triplo no título das páginas quando vou criar ligações internas. Se eu mudasse o título eu perderia isso...) Helder 16h21min de 2 de maio de 2009 (UTC)

Adição de scripts para lidar com "eventos"

Conforme comentado em MediaWiki Discussão:Edittools#Bugs, gostaria que fosse adicionado o seguinte script, com o principal objetivo de (tentar) fazer com que o Edittools funcione no Internet Explorer.

Obs.: o trecho seguinte está "compactado" de modo a despoluir visualmente o contexto da página toda.

/** Adiciona ou remove um evento a um objeto específico **********
 * Cross-browser event attachment (John Resig)
 * http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
 *
 * obj  : Objeto DOM ao qual o evento será adicionado
 * type : String, tipo de evento ("click", "mouseover", "submit", etc.)
 * fn   : Função a ser chamada quando o evento é disparado (a palavra-chave ''this''
 *        aponta para o ''obj'' dentro de ''fn'' quando o evento é disparado)
 *
 * Mantido localmente por: [[User:Helder.wiki]]
 */
function addEvent( obj, type, fn )
{
 if (obj.addEventListener)
  obj.addEventListener( type, fn, false );
 else if (obj.attachEvent)
 {
  obj["e"+type+fn] = fn;
  obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
  obj.attachEvent( "on"+type, obj[type+fn] );
 }
}
function removeEvent( obj, type, fn )
{
 if (obj.removeEventListener)
  obj.removeEventListener( type, fn, false );
 else if (obj.detachEvent)
 {
  obj.detachEvent( "on"+type, obj[type+fn] );
  obj[type+fn] = null;
  obj["e"+type+fn] = null;
 }
}

Helder 21h24min de 21 de maio de 2009 (UTC)

Feito - Jorge Morais 14h22min de 29 de maio de 2009 (UTC)

Atualização da função PngFix

Os scripts adicionados pelo Salles na edição são idênticos aos desta versão do Common.js da Wikipédia.

A seção "Corretor de transparência de PNG em Win IE 5.5 & 6." foi adicionada na Wikipédia em Português nesta edição e tal versão do corretor é idêntica a versão que estava na Wikipédia inglesa em outubro de 2007!!!

Depois da cópia, o pessoal da Wikipédia inglesa continuou discutindo e atualizando o script por lá, e na edição ele foi movido para uma subpágina do Common.js onde ficam apenas os scripts destinados ao IE6, para que o código não fosse aplicado também aos usuários de outros navegadores.

Sendo assim, criei a subpágina MediaWiki:Common.js/IE60Fixes.js com a versão mais atual (já que a que tínhamos estava quase dois anos atrasada!), e troquei o código que estava no nosso Common.js por um condicional que importa o script somente quando se usa o navegador ao qual ele se destina. Assim quem depende de conexões lentas e não usa o IE6 terá que baixar alguns bytes a menos nas próximas vezes.

Para mais informações, vejam: w:MediaWiki Discussão:Common.js#Alteração 4 e também w:en:MediaWiki talk:Common.js/Archive Nov 2007#PNG fix disabled. Helder 18h33min de 19 de julho de 2009 (UTC)

Remoção do script para "artigos destacados"

Conforme a página de documentação (w:en:Template:Link FA), posso dizer que o script da Wikipédia que eu removi nesta edição não tem funcionalidade para nós do Wikilivros (pelo menos por enquanto) porque para que apareça uma estrelinha ao lado de um interwiki em um dos nossos módulos, seria preciso (além do script) que:

  • Exitisse no Wikilivros uma predefinição com funcionalidade correspondente a da w:en:Template:Link FA (a nossa {{Estrela-topo}} faz (e serve para) outra coisa);
  • Adicionássemos tal predefinição para cada idioma em cujo Wikilivros o modulo estivesse destacado. Dada a força tarefa disponível por aqui no momento, já é praticamente inviável mantermos os interwikis manualmente, então manter o uso da predefinição seria impossível sem o uso de algum robo específico (que a grosso modo teria que olhar em cada módulo daqui se exite um correspondente destacado em algum dos outros idiomas...). Não fui capaz de localizar se as Wikipédias usam algum robo para manter a predefinição, mas mesmo depois de localizar tal robo, seria preciso aprender a operá-lo e ter tempo para isso... =/
    • Ou será que por ter um tamanho menor que a Wikipédia, e porque além disso geralmente são destacados nos outros projetos os "aglomerados de artigos" (os livros), não seria assim tão trabalhoso ir em cada um dos nossos 478 e conferir manualmente se algum dos interwikis aponta para um livro destacado?

Sendo assim, pelo menos até que tenhamos condições de tornar o script funcional (alguém com tempo para fazer o trabalho manualmente, ou para criar um robo...), não há porque ele ser baixado junto com todos os scripts globais do Wikilivros, e por isso o removi. Helder 12h59min de 28 de agosto de 2009 (UTC)

O histórico anterior da página foi arquivado para fins de backup em MediaWiki Discussão:Common.js/LQT Archive 1 em 2015-11-04.

MediaWiki message delivery (discussãocontribs)
Responder a "Broken JavaScript"
Não existem tópicos antigos