Um erro JS e um redirect ocorrem depois de editar um RichHtmlField pela segunda vez

Começou a acontecer um problema estranho com o RichHtmlField. Usando o IE8 num site SharePoint, depois de editar um RichHtmlField pela segunda vez, aparece um erro de JavaScript no ficheiro form.js e o utilizador é enviado para a página inicial do site.

Ainda não tenho a certeza da causa deste comportamento estranho, se é algo específico a este site ou se é um problema geral. Só descobri este erro no IE8.

Como duplicar este problema:

  • Editem um RichHtmlField (carregando onde diz "Edit Content").
  • Clickar noutro sítio qualquer na página.
  • Voltar a editar o mesmo campo outra vez.

Se tiverem este problema, vão receber o seguinte erro JavaScript:

Message: 'null' is null or not an object
Line: 2325
Char: 2
Code: 0
URI: (...)/form.js?rev=df60y6YolDjUVbi91%2BZw%2Fg%3D%3D

Infelizmente, não é tudo o que acontece. Depois deste erro, o utilizador é redirecionado para a página inicial do site onde se encontra.

É algo que ocorre no ficheiro form.js, por isso não tenho a certeza se pode ser corrigido através de configuração.

A resolução que implementei não me agrada, mas também resolve outros problemas com instalações default de SharePoint. Basicamente o que fiz foi obrigar o IE8 a fazer o rendering como se fosse o IE7.

É possível fazer isto de diversas maneiras. Por exemplo, adicionando a seguinte meta tag na masterpage:

<meta content="IE=EmulateIE7" http-equiv="X-UA-Compatible" />

Outra alternativa é adicionar um header HTTP ao site em IIS com:

X-UA-Compatible: IE=EmulateIE7

Podem ler mais sobre emular IE7 em IE8 aqui.

Nuno Freitas
Publicado por Nuno Freitas em 28 outubro, 2013

Artigos relacionados