Artigos com a tag 'prototype.js'


Discretas objetos flash

A inserção de objetos (especialmente objetos Flash) em páginas web tornou-se uma estressante muitas vezes recentemente. Em outros posts já abordou o tema de como detectar Flash e páginas de inserção de forma adequada. Como discutimos técnicas Discreto, marcamos dois roteiro bem conhecido pode detectar (e eventualmente instalar) e inserir objetos Flash em uma página, de uma forma muito discreta e afficiente: SWFObject e UFO .
Ambos os scripts têm essencialmente as mesmas características e funcionamento idênticos. A abordagem é para substituí-lo por um certo tag necessidade JavaScript com o conteúdo Flash. Como sabemos, este procedimento elimina o problema de ativação do objeto Flash imposta pelo Internet Explorer, no entanto, implica que o Javascript está habilitado no navegador de destino.
Ambos os scripts não usa nenhumas bibliotecas externas como prototype.js por exemplo. A diferença mais importante entre os dois é que SWFObject é chamado quando o TAG a ser substituído já está carregado na página, não exatamente como discreto. Aqui está um trecho de código que exibe a seqüência de chamada:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"flashcontent" > < div id = "flashcontent">
strong > < forte > Você precisa atualizar seu Flash Player </ strong >
Este é substituído pelo conteúdo em Flash.
Coloque o seu conteúdo alternativo aqui e usuários sem o plugin Flash ou com
Javascript desligado vai ver isso. > noscript < / code > O conteúdo aqui permite-lhe deixar de fora < código inline = "true"> noscript </ code >
tags. "swfobject.html?detectflash=false" > bypass the detection < / a > if you wish. Inclua um link para < um href = "swfobject.html? detectflash = false"> contornar a detecção </ uma > se desejar.
</ div >
"text/javascript" > < roteiro type = "text / javascript">
/ / <! [CDATA [
, "sotester" , "300" , "300" , "9" , "#FF6600" ) ; var so = new SWFObject ("so_tester.swf", "sotester", "300", "300", "9", "# FF6600");
) ; // this line is optional, but this example uses the variable and displays this text inside the flash movie so.addVariable ("flashVarText", "este é passado via FlashVars por exemplo, só") / / esta linha é opcional, mas este exemplo usa a variável e exibe o texto dentro do filme flash
; so.write ("flashcontent");
/ /]]>
</ script de >

UFO , no entanto, permite un'approccio muito mais em linha com o roteiro clássico discreto. A substituição do TAG é no modo transparente, sem sequências de carregamento abbligare, como mostrado no exemplo abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< cabeça >
title > < título > Objetos discretas Flash (UFO) | Página Exemplo </ title >
"Content-Type" content = "text/html; charset=iso-8859-1" / > < meta http-equiv = "Content-Type" content = "text / html; charset = iso-8859-1" />
"text/javascript" src = "ufo.js" >< / script > < roteiro type = "text / javascript" src = "ufo.js"> </ script de >
"text/javascript" > < roteiro type = "text / javascript">
var FO = {movie: "test8.swf", width: "300", height: "120", MajorVersion: "12", build: "0", xi: "true"};
UFO.create (FO ", ufoDemo");
</ script de >
</ cabeça >
< corpo >
"ufoDemo" > < div id = "ufoDemo">
p > < p > O conteúdo substituição </ p >
"border: none;" / >< / a >< / p > Macromedia Flash Player "style =" border: none; "/> </ um > </ p >
</ div >
</ corpo >

No código-fonte do script de UFOs , na verdade, você pode usar imediatamente - mais apropriado - um evento que atenta para carregar totalmente a página antes de a substituição é, abordagem, portanto, muito mais apropriado para o script não intrusiva.

Leia mais ...

Frameworks JavaScript em Apollo

Entre as várias bibliotecas - ou conjunto de bibliotecas (quadro real), dedicado ao Ajax, HTML e extensão de interface Web 2.0 que eu já vi, Ext é definitivamente digno de nota. O site ea documentação são bem feito e organizado, também a demonstração não é para ser desperdiçada. A interface gráfica do usuário, a compatibilidade com Prototype e Scriptaculous e impletazione de Utils Yahoo, torná-lo um sistema interessante, pelo menos! Cuidado, porém a licença! Apesar de apresentar-se como fonte aberto e gratuito para uso pessoal, exige uma taxa para aumentar o uso e cuidado. O último, na verdade, nunca deve ser subestimada no quadro de uma certa complexidade.

Para documentação e demonstração clique aqui .

Em particular, menciona este sistema, eu ainda estou analisando em detalhe, como tem sido usado para criar Feed Reader Fresco , um dos aplicativos de amostra fornecidos com o lançamento do Adobe Apollo Alpha (veja Adobe Apollo versão alfa ). Fresh, portanto, é um exemplo de dois de Apolo, o que demonstra sua capacidade de usar HTML e Javascript, no máximo. Fresco, na verdade, não é um puro Apollo, mas usa a estrutura Ext - e, em seguida, JavaScript e HTML - Apollo no motor! Great!

Leia mais ...

Javascript Discreto: pseudo real e

Neste post eu gostaria de analisar o uso de scripts discretos do ponto de vista do web designer. Normalmente, na verdade, um script que não é intrusiva para o fim do navegador!
Mas também pode ser bom para o Web Designer?

JavaScript discreta do ponto de vista da Web Designer

Colocando-nos na pele de um web designer pode identificar duas categorias de JavaScript discreta: Discreto Javascript JavaScript verdadeira e pseudo discreto.

Ambas as categorias, no entanto, não são totalmente não-invasiva (sempre a partir do ponto de vista do criador de Web). A JavaScript real e completa discreto não deve tomar qualquer ação na página da Web, mas este é - por enquanto - basicamente impossível. A operação mínima necessária durante a instalação de um script, porém a inclusão da inclusão do script em si! Portanto, este é permitida operação que - realmente - não forçar o web designer para fazer ajustes regulares para a estrutura da página. O simples posicionamento da inclusão da tag script dentro da head pode, então, ser considerado não-intrusiva.

O JavaScript discreta verdade

Os scripts deste tipo são aqueles que exigem apenas a inclusão do script discreto e não; reivindicar nenhuma outra operação! Script deste tipo são, por exemplo (o usual e citada), Snap- . Uma vez que você entrar com o código incluem o web designer não deve realizar qualquer operação adicional, porque o script pressão opera com marcas padrão.

O JavaScript discreta pseudo

Estas diferem das anteriores em que eles requerem uma marcação ainda mais para funcionar corretamente. Exemplos deste tipo são Control.Tabs de Ryan Johnson ou biblioteca para slideshow Lightbox JS . per identificare i link che devono essere modificati. Lightbox JS , in particolare, richiede addirittura la presenza esplicita sia di Prototype che di Scriptaculous . A última solução, por exemplo, requer a inclusão no Tag A atributo rel para identificar as ligações que precisam de ser modificado. Lightbox JS , em particular, exige mesmo a presença de ambos explícito Protótipo de que Scriptaculous . Como indicado no site do Lightbox JS , a inclusão do script deve ser semelhante a este:

1
2
3
"text/javascript" src = "js/prototype.js" >< / script > < roteiro type = "text / javascript" src = "js / prototype.js"> </ script de >
"text/javascript" src = "js/scriptaculous.js?load=effects" >< / script > < roteiro type = "text / javascript" src = "carga js / scriptaculous.js? = effects"> </ script de >
"text/javascript" src = "js/lightbox.js" >< / script > < roteiro type = "text / javascript" src = "js / lightbox.js"> </ script de >

Os links que apontam para un'immmagine você deseja exibir o sistema com Lightbox JS deve ser escrito assim:

1
"images/image-1.jpg" rel = "lightbox" title = "my caption" > image #1 < / a > < um href = "images/image-1.jpg" rel = "lightbox" title = "caption minha"> image # 1 </ uma >

Além de identificar um grupo de imagens, para adicionar a capacidade para se deslocar para a frente e para trás imagens, a Tag A deve ser definido da seguinte forma:

1
2
3
"images/image-1.jpg" rel = "lightbox[roadtrip]" > image #1 < / a > < um href = "images/image-1.jpg" rel = "lightbox [roadtrip]"> image # 1 </ uma >
"images/image-2.jpg" rel = "lightbox[roadtrip]" > image #2 < / a > < um href = "images/image-2.jpg" rel = "lightbox [roadtrip]"> image # 2 </ uma >
"images/image-3.jpg" rel = "lightbox[roadtrip]" > image #3 < / a > < um href = "images/image-3.jpg" rel = "lightbox [roadtrip]"> image # 3 </ uma >

A necessidade destas constrições é evidente, não há nenhuma maneira fácil de distinguir um elemento link (tag A ) de outra. Em particular, não é claro qual o elemento Web designer quer exibir de uma forma ou de outra. Necessariamente ser o designer Web para indicar de alguma forma a marca e os seus comportamentos. São, portanto, necessário - intrusiva - totalmente compreensível, nada diminui a utilidade eo potencial desses scripts. Apenas conduzir a um maior detalhe e algumas linhas de código em mais de Web Designer.

É interessante, no entanto, o duplo aspecto da 'JavaScript discreta, analisados ​​tanto do ponto de vista do utilizador final a partir do ponto de vista Web Designer.

Leia mais ...

Defeitos JavaScript dell'unobtrusive

Enquanto conversávamos sobre isso bem no post anterior, é hora de falar sobre o mal (piada), ou pelo menos destaque algumas deficiências da técnica de JavaScript discreta.
Se o código JavaScript discreta é executado quando a página está completamente carregada, segue-se que quanto maior a quantidade de dados (HTML) que compõe a nossa página e mais tempo para esperar antes de nosso código é executado.

Isso pode resultar em atrasos na execução e resultando em um efeito de cintilação chato se a trabalhar nos elementos visuais da página. Tomemos por exemplo o código usado por Ryan Johnson para criar TabStrip objetos. Se você olhar para a demonstração você vai achar que por um segundo ou assim, quando a página carrega, há claramente um layout padrão substituído logo depois por os objetos TabStrip. Recarregar a página novamente, graças ao cache do navegador, o problema tende a diminuir (tentar limpar todo o cache do seu navegador para verificar os horários).

Tudo isso deve nos fazer refletir sobre os limites desta técnica. O mesmo snap sofre exatamente os mesmos de desaceleração, especialmente páginas muitas vezes extremamente altas como a de undolog.com . Carregando a página inicial deste blog é claro que snap executado alguns segundos depois, ou seja, quando a página está completamente carregada.

Por definição de 'JavaScript discreta é difícil de resolver este problema, em geral. No entanto, o desenvolvimento de um proprietário de site pode tomar algumas precauções destinadas a reduzir ou eliminar defeitos. Uma forma bastante simples é criar uma espécie de elemento pré-carga freqüentemente usada em Adobe Flash. Você pode então definir a marca do corpo - que contém todos os elementos da página - para que é invisível, deixando a tarefa de código Javascript para torná-lo visível quando ele tiver terminado - se houver - alterações no DOM:

1
"ibody" style = "display:none" > < corpo id = "iBODY" style = "display: none">

O código JavaScript discreta no final de suas operações:

1
2
3
"ibody" ) . style . display = "" ; documento getElementById ("iBODY") estilo display = ""...;
/ / Se você usar o protótipo
) . style . display = "" ; $ ("IBODY") Style Display = ""..;

Solução, no entanto, trivial e nem sempre aplicável. Além disso, mesmo que de alguma forma resolver o problema da caricameno em primeiro lugar, navegar de forma a longo prazo pode ser muito irritante para os velejadores. Não ser intrusivo, portanto, tem um preço a pagar. Mesmo operando no nível do objeto, por exemplo, definindo apenas os elementos interessantes no modo oculto, o fato de que o código começa no fim de carregar a página inteira com ela, inevitavelmente, os mesmos problemas.

Leia mais ...

Exemplos de Javascript discretos

Como prometido, aqui estão alguns exemplo concreto de JavaScript discreta, ferramenta versátil e poderosa, se usado corretamente. No Site / Blog Ryan Johnson você pode baixar dois exemplo muito bom de JavaScript discreta:

Ryan Johnson, em seu script, a biblioteca usa Prototype , como muitos do resto. Ele também escreveu algumas extensões para a relativamente Prototype , então introduzido - de uma forma diferente - na última versão da biblioteca.
Use Prototype para ilustrar a operação de código JavaScript discreta é geralmente mais conveniente - como veremos mais tarde, no entanto, aqui é um bruto primeiro exemplo que não requer bibliotecas externas. Começamos por relembrar que o conceito por trás do JavaScript discreta é começar a partir de qualquer página HTML (padrão e não necessariamente escrito por nós - o mais importante ponto forte) e utilizar Javascript para fazer algumas mudanças.

Schematimamente o conceito é para executar uma função que analisa o HTML, em seguida, percorre o DOM e em pontos específicos para adicionar ou alterar a funcionalidade. Normalmente utilizam dois métodos para executar código Javascript para carregar uma página: a primeira é que você não coloque o código em qualquer função, e deixar que o navegador execute código imediatamente enviados para o ponto onde a chamada é exibida:

1
script > < roteiro > alert ("Olá"); </ script de >

O mesmo resultado é obtido por incluindo o código:

1
"http://miosito.com/miocodice.js" >< / script > < roteiro src = "http://miosito.com/miocodice.js"> </ script de >

No entanto, quando ele deve operar no DOM de uma página que assume um carregado totalmente, que tudo TAG da página está presente e disponível para ser rastreado. Portanto, a melhor solução se torna o único a ter certeza de que a página está concluída. Isto é possível por envolver o evento onload do tag body, por exemplo, que é liberada quando a carga da página é concluída.

1
2
3
miafunzione ; janela onload = myfunction.;
/ / Ou, que é o mesmo
function ( ) { alert ( "Hello" ) ; } . onload janela = function () {alert ("Olá");}

Ser evitada, é claro, a solução canónica que seria uma atenuação para chamar intrusivo:

1
"miafunzione()" > < corpo onload = "myfunction ()">

Outra técnica, mais grosso e igualmente intrusivos (como seria forçar o usuário final para colocar o código em um determinado local), é inserir nosso script no final do documento antes de o corpo da tag de fechamento, agora técnica obsoleta e usados em casos raros (ver Google Analytics!).

Ainda melhor é a utilização do método abaixo:

1
2
3
4
5
6
7
window. addEventListener ) { if (addEventListener window.) {
"load" , miafunzione , false ) ; addEventListener janela. ("load", myfunction, false) ¾ Í
( window. attachEvent ) { } Else if (window. attachEvent) {
"onload" , miafunzione ) ; janela. attachEvent ("onload", myfunction) ¾ Í
{ Else {}
createSubMenus; janela. onload = createSubMenusÍ ¾
}

Mesmo este pedaço de código é colocado em uma função. Ele vai adicionar um ouvinte de eventos para o evento de carga da janela, chamando a nossa função miafunzione() . . Os navegadores modernos como o Firefox por exemplo, vai usar a função addEventListener() definido no DOM Nível 2, enquanto o Internet Explorer irá usar a sua função proprietária attachEvent() . No entanto não temos a perfeição, desta forma, na verdade, ele vai substituir todos - se houver - eventos onload criados por outros scripts, o que não é realmente "não intrusiva".

Para resolver este problema rapidamente, que, devido ao comportamento diferente do browser seria menos complicado explicar aqui, você deve usar como libreirie Prototype fornecendo método un'elengantissimo para superar o problema:

1
window , 'load' , function ( ) { alert ( "Hello" ) ; } ) ; . Evento Observar (window, 'load', function () {alert ("Olá");});

A sintaxe é muito óbvio e espetacular! A vantagem para aqueles que não tinham entendido, é que você pode escrever:

1
2
window , 'load' , function ( ) { alert ( "Hello 1" ) ; } ) ; . Evento Observar (window, 'load', function () {alert ("Olá 1");});
window , 'load' , function ( ) { alert ( "Hello 2" ) ; } ) ; . Evento Observar (window, 'load', function () {alert ("Olá 2");});

No carregamento da página será mostrado antes o alerta "Olá 2" e então o alerta "Olá 1". Basicamente você carregar em um (Input Output Sobrenome) FILO uma pilha, assegurando a execução de todos os eventos ligados ao carregar o documento exatamente o que foi desejado. Desta maneira, uma página pode carregar - virtualmente - JavaScript discreta sem fim que enganchar para carregar o documento.

Mas o que você pode fazer com esta técnica? Muitas coisas interessantes. Um exemplo que podemos comentar (ver também Prototype: o uso do cifrão duplo ($ $) ) vem Tobie Langel . Com poucas linhas de código e importação de bibliotecas Prototype e Scriptaculous que você pode dar um belo efeito à âncora clássico de nossas páginas. Primeiro, crie uma página HTML com o seguinte código:

1
2
3
4
5
6
7
8
= "#capitolo1" > Vai al capitolo 1 < / a >< / p > < p > < um href = "# capítulo 1"> Vai no Capítulo 1 </ um > </ p >

< / p > < p > </ p >
< / p > < p > </ p >

.... < / p > .... um monte 'de < p > </ p > .... apenas como um exemplo

"capitolo1" > Capitolo 1 < / h1 > < h1 id = "capítulo 1"> Capítulo 1 </ h1 >

Incluir a página:

1
2
3
4
5
6
7
8
9
10
11
12
"prototype.js" type = "text/javascript" charset = "utf-8" >< / script > < roteiro src = "prototype.js" type = "text / javascript" charset = "utf-8"> </ script de >
"scriptaculous-js-1.7.0/src/effects.js" type = "text/javascript" charset = "utf-8" >< / script > < roteiro src = "scriptaculous-js-1.7.0/src/effects.js" type = "text / javascript" charset = "utf-8"> </ script de >

"text/javascript" language = "javascript1.2" > < roteiro type = "text / javascript" language = "JavaScript1.2">
Event.observe (window, 'load', function () {
$ $ $ ('A [href ^ = #]: não ([href = #])') Cada (function (elemento) {.
element.observe função ('click', (evento) {new Effect.ScrollTo (this.hash.substr (1));
Event.stop (evento);
bindAsEventListener (elemento))
})
})
</ script de >

Graças a "usar Event.observe() função e dois dólares ($ $) você pode facilmente modificar o comportamento da âncora clássico. Neste caso, uma nova função está ligado às cargas de páginas HTML. Ao levar o evento de carga é rastreada todos os links no DOM (Tag <A>) com href que começa com um sustenido (#, excluindo o com apenas o hash!). Para estes elementos é uma função ligado ao evento de clique, semelhante ao que foi feito com a carga do documento. Neste ponto entra em jogo Scriptaculous que produz um efeito de rolagem para o punatato elemento do nosso link - modificado!

Leia mais ...

Acessibilidade e Usabilidade: Javascript discreto

Permitindo aos usuários interagir com uma página da Web nos últimos anos tem produzido um aumento significativo no uso de client-side scripting: código Javascript pode responder em tempo real e manipular uma variedade de informações. A Web 2.0 é a expressão máxima dessa capacidade de interação, no qual o usuário final - o usuário a participar activamente na construção e evolução "do site, interagindo com ele e ajudar a nós mesmos. É conhecido como User-Generated Content (UGC ou - conteúdo gerado pelo usuário), que vê o "navegador" definitivamente não é passivo!

Para atingir essa interação, permitindo que o usuário final adicionar a sua contribuição, nós desenvolvemos uma série de técnicas que mudaram a aparência e comportamento de páginas Web (estático até agora, mas agora semelhante à das aplicações tradicionais de Desktop) nos últimos anos. Alterar o conteúdo de uma página, enviar arquivos, dando seu voto a um vídeo ou um documento, registrar ou alterar seus dados pessoais, são apenas algumas das operações adaptações em muitos serviços (2,0 beta) na Web

Leia mais ...

Onde JavaScript ganha

Escolha a tecnologia para usar no desenvolvimento de um aplicativo da Web é de vital importância, para não se encontrar em apuros logo depois. O tipo de aplicação web, as suas características operacionais, são o primeiro ponto a ter em conta para escolher o FrameWork e tecnologias relacionadas.
Tenho muitas vezes discutida a eficácia do script JavaScript contra diferentes tecnologias como o Adobe Flash ou Java. No entanto, é importante salientar um aspecto importante muitas vezes ignorado: o acesso ao DOM Javascript, neste caso, o candidato (se não a única) um favorito para este tipo de operação..

Ferramentas com snap , por exemplo, operar com um mecanismo simples: quando a página HTML é carregada (e após a introdução do carregamento de scripts JavaScript) é para digitalizar a página e acrescentou um novo código HTML em pontos especiais. No caso de snap identifica todos os links para páginas externas (ou na configuração interna da última edição), o <A> TAG para indenderci. Estes são modificados de modo que no mouse para abrir um diálogo anterpima de links (ver neste blog muito, por exemplo).

Não só de encaixe , mas muitos outros scripts JavaScript, basicamente, fazer a mesma coisa. Ultimamente, esta técnica é amplamente utilizada pela biblioteca Prototype , que fornece uma variedade de métodos (como a famosa dupla de dólares, ou $ $ $ - ver Prototype: o uso do cifrão duplo ($ $) ) é a faixa que a mudança - a mosca - os elementos de uma página HTML.

Navegando pelo DOM HTML é, portanto, tarefa específica de Javascript. Historicamente, inter alia, JavaScript foi introduzido a fim de ler e escrever o conteúdo de uma página HTML.
Por exemplo, se quiséssemos fazer algumas mudanças para uma página HTML usando o Adobe Flash, aggorgeremmo nós - mais cedo ou mais tarde - para ser forçado a chamar uma função JavaScript. O novo ActionScript 3,0, por exemplo, fornece uma classe ( ExternalInterface ) apropriado para esta finalidade. – o fscommad() per chiamare una funzione Javascript: Uma vez (em versões anteriores do ActionScript) usamos o comando getURL() - agora substituído por uma melhor flash.net.navigateToURL() - ou fscommad() para chamar uma função JavaScript:

1
) ; getURL ("javascript: myFunction ()");

Além disso:

A classe ExternalInterface é a API externa, uma interface de programação de aplicativo que permite a comunicação direta entre o ActionScript e do Flash recipiente Player, por exemplo, uma página HTML com JavaScript, ou uma aplicação desktop com o Flash Player incorporado.

Note-se que "a aplicação desktop" que tanto lembra Apollo!

Hoje, graças a ExternalInterface , você pode chamar uma função JavaScript para pelo menos mais limpo (esta classe permite o gerenciamento muito mais eficiente do que getURL() , como passagem de parâmetros):

1
2
3
4
5
6
/ * Chama o externos função "SomaNumeros"
passando dois parâmetros, e atribuindo resultado dessa função
para o "resultado" variável * /
uint = 3 ; var param1: uint = 3;
uint = 7 ; var param2: uint = 7;
uint = ExternalInterface . call ( "addNumbers" , param1 , param2 ) ; var resultado: uint = ExternalInterface chamada ("SomaNumeros", param1, param2);.
1
2
3
4
5
6
<<script>! -
/ / Adiciona dois números, e envia o resultado de volta para o ActionScript
num1 , num2 ) { SomaNumeros função (num1, num2) {
num1 + num2 ) ; return (num1 + num2);
}
/ / -> </ Script>

O que podemos concluir então? Entre os vários quadros e bibliotecas disponíveis a análise inicial do projeto que pretende alcançar é de suma importância. Erros nesta fase pode afetar seriamente as fases subsequentes de qualquer projeto Web2.0. JavaScript, então, que supera tudo quando ele precisa interagir com o DOM.

Leia mais ...

Prototype: O uso do dólar duplo ($ $)

Com a última versão do Prototype, Andrew , e Christophe ter acelerado e melhorou o "dólar duplo" ( $ $ utilitários ), que permite que você selecione um item especificando o disco (quase todos os seletores CSS3 suportados pelas especificações).

A utilidade desse recurso vai além dos US $ popular, que pode ser útil, mas, em última análise, não realiza nenhuma operação digna de nota. Os utilitários "de dois dólares" ($ $), mas na verdade permite que você selecione qualquer tipo de item, o que lhe dá grandes ferramentas para filtrar elementos no DOM.

Aqui estão alguns exemplos retirados do site oficial:

1
2
3
4
5
) ; // -> Tutti i DIV del documento. $ $ $ ('Div') / / -> Tudo o documento DIV. Mesmo que document.getElementsByTagName ('div')!
) ; // -> Uguale a $('contents'), ma ritorna sempre un array. $ $ $ ('O conteúdo #') / / -> O mesmo que $ ('conteúdo'), mas ele sempre retorna um array.
) ; // -> Tutti fli elementi LI con class 'faux' $ $ ('Li.faux') / / -> Todos os elementos FLI LI com 'falso' classe
) ; // -> Tutti i TAG A (links) al di sotto di un elemento con ID "contents" e con un attributo rel $ $ ('Conteúdo # a [rel]') / / -> Todos os TAG A (links) abaixo de um elemento com ID "conteúdo" e com um atributo rel
) ; // -> Tutti i TAG A (links) con un'attributo href con valore "#" (eyeew!) $ $ $ ('A [href = "#"]') / / -> Todos os TAG A (links) com um valor de atributo href com "#" (eyeew!)

A força, no entanto, reside na possibilidade de exclusão de alguns artigos a favor de outros, por exemplo:

1
) ; // -> Tutti i TAG A (links), esclusi quelli che contengono un attributo rel impostato a "nofollow" $ $ $ ('A: não ([rel = nofollow ~])') / / -> TAG All A (links), excluindo aqueles que contêm um rel atributo definido como "nofollow"

Ainda mais interessante é:

1
) $ $ $ ('A [href ^ = #]: não ([href = #])')

Isso, na prática, todos localizados em TAG com o atributo href que começa com '#', mas não leva em conta aqueles que são iguais a '#' só. Em outras palavras, ignora os links que apontavam para um ID válido!
Esta característica única de ($ $) tem inspirado Tobie Langel para criar um script simples (desarmamento) pode adicionar um efeito muito bonito quando se desloca dentro de uma página HTML simples você se move para Âncoras, com a técnica - apenas - href = "#".
Para uma demonstração clique aqui .

Leia mais ...



Pare SOPA