Opened 9 years ago
Closed 9 years ago
#14369 closed Bug (invalid)
Inline Widget - Downcast/Upcast errors
Reported by: | Gavin Roberts | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | UI : Widgets | Version: | |
Keywords: | Cc: |
Description
Steps to reproduce
- Go to https://jsfiddle.net/zkv6pme3/3/
- Place cursor within text.
- Click empty button on the left (note the red bordered box that appears)
- Click the Source button
Expected result
- All
<span class="test"></span>
blocks to be upcasted and converted into widgets. - When clicking Source after adding a widget to the editor, it should show the source code.
Actual result
- Existing
<span class="test"></span>
blocks are removed. - Throws
Uncaught TypeError: Cannot read property 'attributes' of null
Stacktrace:
Uncaught TypeError: Cannot read property 'attributes' of null (anonymous function) @ plugin.js?t=FB99:2699 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.htmlParser.fragment.forEach @ ckeditor.js:260 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.htmlParser.fragment.forEach @ ckeditor.js:260 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.htmlParser.fragment.forEach @ ckeditor.js:260 (anonymous function) @ plugin.js?t=FB99:2680 h @ ckeditor.js:10 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.event.CKEDITOR.event.fire @ ckeditor.js:11 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.editor.CKEDITOR.editor.fire @ ckeditor.js:13 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.htmlDataProcessor.toDataFormat @ ckeditor.js:281 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.tools.createClass.proto.getData @ ckeditor.js:992 (anonymous function) @ ckeditor.js:327 h @ ckeditor.js:10 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.event.CKEDITOR.event.fire @ ckeditor.js:11 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.editor.CKEDITOR.editor.fire @ ckeditor.js:13 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.tools.extend.getData @ ckeditor.js:237 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.editable.CKEDITOR.tools.createClass._.detach @ ckeditor.js:339 (anonymous function) @ ckeditor.js:28 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.editable.CKEDITOR.tools.createClass.proto.detach @ ckeditor.js:321 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.tools.createClass.proto.detach @ ckeditor.js:992 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.editor.editable @ ckeditor.js:340 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.editor.setMode @ ckeditor.js:307 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.plugins.sourcearea.commands.source.exec @ ckeditor.js:900 exec @ ckeditor.js:174 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.tools.extend.execCommand @ ckeditor.js:236 CKEDITOR.tools.extend.click @ ckeditor.js:742 n.execute @ ckeditor.js:743 (anonymous function) @ ckeditor.js:744 (anonymous function) @ ckeditor.js:29 window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.tools.callFunction @ ckeditor.js:29 onclick @ (index):1
Other details (browser, OS, CKEditor version, installed plugins)
Chrome, OS X, 4.5.6 and custom plugin - All code contained within https://jsfiddle.net/zkv6pme3/3/
Change History (1)
comment:1 Changed 9 years ago by
Keywords: | inline removed |
---|---|
Resolution: | → invalid |
Status: | new → closed |
Version: | 4.5.6 |
Please see: https://jsfiddle.net/zkv6pme3/4/ and https://github.com/ckeditor/ckeditor-dev/blob/master/plugins/placeholder/plugin.js#L39
Empty inline elements are considered garbage in CKEditor and are removed. This is core behaviour and is beyond widgets control (it is also not configurable). In order to avoid it please add simple
to your widget template. You can later add (if your template has no content)/remove it in upcast/downcast methods.