Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG: Uncaught SyntaxError: Unexpected token '{' at CanvasView.ts:590:12 #5352

Closed
2 tasks done
rozek opened this issue Aug 31, 2023 · 2 comments
Closed
2 tasks done

BUG: Uncaught SyntaxError: Unexpected token '{' at CanvasView.ts:590:12 #5352

rozek opened this issue Aug 31, 2023 · 2 comments

Comments

@rozek
Copy link

rozek commented Aug 31, 2023

GrapesJS version

  • I confirm to use the latest version of GrapesJS

What browser are you using?

Version 1.56.20 Chromium: 115.0.5790.171 (Offizieller Build) (arm64)

Reproducible demo link

none

Describe the bug

I have a component type with a script

      Editor.DomComponents.addType('HTMLView',{
        model: {
          defaults: {
             script () { console.log('Hi!'); runScript.call(this) },
            ...

When previewing a project using a component of this type, GrapesJS creates the following HTML

<div class="gjs-js-cont"><div data-id="ij6k"><script>
      setTimeout(function() {
        var item = document.getElementById('ij6k');
        if (!item) return;
        (function(){
script () {
              console.log('Hi!'); runScript.call(this)
;}.bind(item))({})
      }, 1);</script></div></div>

If you inspect this output carefully, you will see that the inner script () { is not properly closed.

I've already tried to find some workarounds but did not succeed yet. But I will try further as this problem turns out to be a blocker...

Code of Conduct

  • I agree to follow this project's Code of Conduct
@rozek
Copy link
Author

rozek commented Aug 31, 2023

that's interesting: defining a separate function

function script () { console.log('Hi!'); runScript.call(this) }

and defining the component type as described in the docs

      Editor.DomComponents.addType('HTMLView',{
        model: {
          defaults: {
             script,
            ...

works as designed.

But it still sounds strange, that an inline function produces a syntax error in the exported HTML...

@artf
Copy link
Member

artf commented Sep 3, 2023

@rozek good catch, will fix for the next release

@artf artf closed this as completed in 4e98889 Sep 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants