ctx.element
Instance ElementProxy trỏ đến DOM container của sandbox, là target render mặc định của ctx.render(). Khả dụng trong các kịch bản có container render như JSBlock, JSField, JSItem, JSColumn.
Kịch bản áp dụng
Lưu ý:
ctx.elementchỉ khả dụng trong ngữ cảnh RunJS có container render; trong các kịch bản không có ngữ cảnh UI (như logic backend thuần) có thể làundefined, khuyến nghị kiểm tra null trước khi sử dụng.
Định nghĩa kiểu
Yêu cầu bảo mật
Khuyến nghị: tất cả render được thực hiện qua ctx.render(). Không sử dụng trực tiếp DOM API của ctx.element (như innerHTML, appendChild, querySelector, v.v.).
Tại sao khuyến nghị ctx.render()
Không khuyến nghị: thao tác trực tiếp ctx.element
ctx.element.innerHTMLđã deprecated, hãy sử dụngctx.render()thay thế.
Khuyến nghị: sử dụng ctx.render()
Trường hợp đặc biệt: làm anchor cho popover
Khi cần mở Popover với element hiện tại làm anchor, có thể truy cập ctx.element?.__el để lấy DOM gốc làm target:
Chỉ sử dụng
__eltrong các kịch bản "lấy container hiện tại làm anchor" như thế này; các trường hợp khác xin đừng thao tác DOM trực tiếp.
Quan hệ với ctx.render
- Nếu
ctx.render(vnode)không truyềncontainer, mặc định render vào containerctx.element - Nếu cùng lúc không có
ctx.elementvà không truyềncontainer, sẽ ném lỗi - Có thể chỉ định container rõ ràng:
ctx.render(vnode, customContainer)
Lưu ý
ctx.elementchỉ được sử dụng làm container nội bộ củactx.render(), không khuyến nghị truy cập hoặc sửa thuộc tính/phương thức của nó trực tiếp- Trong ngữ cảnh không có container render,
ctx.elementlàundefined, trước khi gọictx.render()cần đảm bảo container khả dụng hoặc truyềncontainerthủ công - Mặc dù
innerHTML/outerHTMLcủa ElementProxy đã được DOMPurify làm sạch, vẫn khuyến nghị sử dụngctx.render()để quản lý render thống nhất
Liên quan
- ctx.render: Render nội dung vào container
- ctx.view: Bộ điều khiển view hiện tại
- ctx.modal: API tắt cho modal

