O que significa um script-Tag com conteúdo src AND?

Exemplo do botão Googles +1:

 {"parsetags": "explicit"}  

O script Tag tem um atributo src e conteúdo. O que isso significa e como funciona?

Navegadores diferentes tratam isso de maneira diferente. Alguns executam o conteúdo somente se o src for incluído sem erro. Alguns o executam depois de tentar include o script src , independentemente do sucesso. Como esse comportamento não é confiável (e proibido em HTML5 ), ele deve ser evitado.

O Google não está confiando em nenhum comportamento específico. Como o conteúdo é apenas um object literal (um valor), executá-lo não faria nada, exceto causar um erro silencioso. O código do Google analisa o conteúdo da própria tag do script e ajusta seu comportamento com base nisso.

Se um elemento de script tiver um atributo src , o conteúdo deve ser ignorado, qualquer outro comportamento não está em conformidade.

Foi sugerido em blogs (como um hack) colocar conteúdo no elemento sabendo que ele não será avaliado, então usar methods DOM para obter o conteúdo como uma string e ou evalá- lo ou inseri-lo em um novo elemento de script. Nenhuma delas é uma boa ideia.

De acordo com a especificação de rascunho do HTML5 , os elementos com atributos src devem ter apenas um código com comentários, que tem como objective fornecer documentação para o script. Não parece que o Google esteja em conformidade com essa especificação.

Depois que o script é carregado, ele procura dentro de sua própria tag de script para acessar seu conteúdo.

Ele usará algum código semelhante a este:

 var scripts = document.getElementsByTagName("script"); var data = eval(scripts[scripts.length - 1].innerHTML); 

Cortesia de John Resig .