Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
ctx.element
Uma instância de ElementProxy que aponta para o contêiner DOM do sandbox, servindo como o alvo de renderização padrão para ctx.render(). Está disponível em cenários onde existe um contêiner de renderização, como JSBlock, JSField, JSItem e JSColumn.
Cenários de Uso
Observação:
ctx.elementsó está disponível em contextos RunJS que possuem um contêiner de renderização. Em contextos sem UI (como lógica puramente de backend), ele pode serundefined. Recomenda-se realizar uma verificação de valor nulo antes do uso.
Definição de Tipo
Requisitos de Segurança
Recomendado: Toda renderização deve ser realizada via ctx.render(). Evite usar as APIs DOM de ctx.element diretamente (ex: innerHTML, appendChild, querySelector, etc.).
Por que ctx.render() é recomendado
❌ Não recomendado: Manipulação direta de ctx.element
ctx.element.innerHTMLestá depreciado. Por favor, usectx.render()em seu lugar.
✅ Recomendado: Usar ctx.render()
Caso Especial: Como âncora de Popover
Quando você precisar abrir um Popover usando o elemento atual como âncora, você pode acessar ctx.element?.__el para obter o DOM nativo como target:
Use
__elapenas em cenários como "usar o contêiner atual como âncora"; não manipule o DOM diretamente em outros casos.
Relação com ctx.render
- Se
ctx.render(vnode)for chamado sem um argumentocontainer, ele renderiza no contêinerctx.elementpor padrão. - Se tanto
ctx.elementestiver ausente quanto nenhumcontainerfor fornecido, um erro será lançado. - Você pode especificar explicitamente um contêiner:
ctx.render(vnode, customContainer).
Observações
ctx.elementdestina-se ao uso interno peloctx.render(). Acessar ou modificar suas propriedades/métodos diretamente não é recomendado.- Em contextos sem contêiner de renderização,
ctx.elementseráundefined. Certifique-se de que o contêiner está disponível ou passe umcontainermanualmente antes de chamarctx.render(). - Embora
innerHTML/outerHTMLnoElementProxysejam sanitizados via DOMPurify, ainda é recomendado usarctx.render()para um gerenciamento de renderização unificado.
Relacionado
- ctx.render: Renderizar conteúdo em um contêiner
- ctx.view: Controlador de visualização atual
- ctx.modal: API de atalho para modais

