Issue #6064Opened August 18, 2024by mannyyang0 reactions

BUG: Setting the text content programmatically clears it in the canvas

Question

GrapesJS version

  • I confirm to use the latest version of GrapesJS

What browser are you using?

v126

Reproducible demo link

https://jsfiddle.net/r5062suy/1/

Describe the bug

How to reproduce the bug?

  1. Run the demo link (https://jsfiddle.net/r5062suy/1/)
  2. See that I try to update the text in the div from "Hello world!!" to "test" through editor.getWrapper().find('.test-text')[0].set('content', 'test').
  3. However, it clears out the text instead.

What is the expected behavior? It updates the text content correctly.

What is the current behavior? It clears it out instead.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Answers (3)

danstarnsAugust 18, 20240 reactions

Try using the .getEl method on the component then setting the element directly.

const editor = grapesjs.init({
  container: '#gjs',
  fromElement: 1,
  height: '100%',
  storageManager: { type: 0 },
  plugins: ['gjs-blocks-basic']
});

setTimeout(() => {
  const component = editor.getWrapper().find('.test-text')[0]
  const el = component.getEl();
  el.textContent = "test"
}, 1000)
mannyyangAugust 18, 20240 reactions
  const component = editor.getWrapper().find('.test-text')[0]
  const el = component.getEl();
  el.textContent = "test"

Problem with this is that when you export the HTML, it returns the old text.

setTimeout(() => {
  const component = editor.getWrapper().find('.test-text')[0]
  const el = component.getEl();
  el.textContent = "test"

  console.log(component.toHTML())
  // <div class="test-text" id="i387">Hello World!!!</div>
}, 1000)
artfAugust 21, 20240 reactions

@mannyyang where did you find the usage of set('content', ...? It's more like private property and you should never use it.

To update inner components programmatically use component.components('test')

Related Questions and Answers

Continue research with similar issue discussions.

Paid Plugins That Match This Issue

Curated by issue keywords and label relevance to help you ship faster.

View all plugins

Loading paid plugin recommendations...

Browse Plugin Categories

Jump directly to plugin category pages on the marketplace.