Closed Lerdouille closed 4 years ago
Hi,
for the record, when i try to change the isComponent return, with a type defined in a plugin like this :
isComponent: el => { if (el.tagName === 'DIV' && (typeof el.classList !== 'undefined' && el.classList.contains('imagelink-class'))) { return { type: 'marketing-button' }; } },
the import will recognize my <div><a><img></a></div>
DOM results as a marketing-button (defined in the plugin grapesjs-block-avance
I think i miss something in the type definition to help grapesjs to recognize my type on import....
Best regards
Another curiosity which might be logical... If i tried to put a exotic isComponent function like this :
if (el.tagName === 'ABCDE') { return { type: 'imagelink' }; }
And when i try to import this html text :
<abcde>test</abcde>
The plugin detect correctly my "imagelink" custom type.
BUT, when i import this html text :
<abcde><img src="ggggg"></abcde>
it didn't work. I guess the plugin stil go further in the component recognition and detect the IMG and A dom, and override so the detection...
I think you're missing the point of components. You have a custom one (imagelink
) and then an inner one (img
), so the editor shows it, so I see no issues here. To see the traits from the custom component you have to select it and it has nothing to do with the inner image
I hope you don't use HTML to load back your stored templates...
Yes i do, why ?
The component is well recognize but i have another issue :'( Actually not all styles are imported correctly.
For example, if i change the text color, background color and width parameters, only the background color is correctly applied and imported when i import the stored template.
Regards
Hi,
i succeed to create a new type containing a clickable image. But unfortunaltely, the new custom type isn't recognize by the HTML parser on import.
Here is my new type source code :
`editor.DomComponents.addType('imagelink', {
I precise the definition of the new type is include in a plugin, which is passed in the editor initialization :
var editor = grapesjs.init({ .... plugins: [myplugin]; ... }
I tried to use the isComponent parameter to do so, the condition is good, but the plugin render all the dom components separately (
<img>
and<a>
) instead of the "imagelink" type. So when i click on the image, i can't change the traits defined in my type.I think i'm missing some points, but i can't figure it out... Could you please tell me what's wrong ?
I know it is possible, for example the plugin 'gjs-social' and its type 'Social-link-block' works perfecty...
Best regards