Uncaught TypeError: Cannot read property ‘unselectable’ of null

17 enero 2022

En una aplicación que programé usando Laravel me pasó algo inusual. me reportaron que al abrir una ventana modal en la cual tenía un editor de texto, a veces se mostraba y en otros momentos (con otro elemento) no se mostraba y me aparecia en la consola el siguiente error

Uncaught TypeError: Cannot read property ‘unselectable’ of null

at b (ckeditor.js:340)

at a.<anonymous> (ckeditor.js:336)

at a.e (ckeditor.js:10)

at a.<anonymous> (ckeditor.js:11)

at a.window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.editor.CKEDITOR.editor.fire (ckeditor.js:13)

at a.fireOnce (ckeditor.js:12)

at a.window.CKEDITOR.window.CKEDITOR.dom.CKEDITOR.editor.CKEDITOR.editor.fireOnce (ckeditor.js:13)

at Object.<anonymous> (ckeditor.js:264)

at f (ckeditor.js:245)

at Object.load (ckeditor.js:245)

Después de pasar tiempo buscando en la web quiero compartir con ustedes la solución que a mi me funcionó. Resulta que para las tablas yo uso el plugins DataTable y al comparar la vista donde se mostraba el editor, con la que no se mostraba sólo se diferenciaba en el paginado de la tabla. En la que se mostraba tenia una pagina y en la que no se mostraba tenía dos páginas o más.

paginado

Quizás por azar o por instinto me dió por probar aumentarle el paginado a la Tabla y Eureka!!! resuelto el problema.

En el fichero de configuración de la Tabla (DataTable)

$(document).ready(function () {

    $(‘#detalle’).DataTable({

        ‘pageLength’  : 15, 

        ‘paging’      : true,

        ‘lengthChange’: false,

        ‘searching’   : true,

        ‘ordering’    : true,

        ‘info’        : true,

        ‘autoWidth’   : true,

        “language”: {

            “sProcessing”:     “Procesando…”,

            “sLengthMenu”:     “Mostrar _MENU_ registros”,

            “sZeroRecords”:    “No se encontraron resultados”,

            “sEmptyTable”:     “Ningún dato disponible en esta tabla “,

            “sInfo”:           “Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros”,

            “sInfoEmpty”:      “Mostrando registros del 0 al 0 de un total de 0 registros”,

            “sInfoFiltered”:   “(filtrado de un total de _MAX_ registros)”,

            “sInfoPostFix”:    “”,

            “sSearch”:         “Buscar:”,

            “sUrl”:            “”,

            “sInfoThousands”:  “,”,

            “sLoadingRecords”: “Cargando…”,

            “oPaginate”: {

                “sFirst”:    “Primero”,

                “sLast”:     “Último”,

                “sNext”:     “Siguiente”,

                “sPrevious”: “Anterior”

            },

            “oAria”: {

                “sSortAscending”:  “: Activar para ordenar la columna de manera ascendente”,

                “sSortDescending”: “: Activar para ordenar la columna de manera descendente”

            },

            “buttons”: {

                “copy”: “Copiar”,

                “colvis”: “Visibilidad”

            }

        }

    })

});

El parámetro ‘paging‘, que estaba en true, lo puse en false y de esa manera evito el paginado.

Otra solución es aumentar el parámetro pageLength a un valor poco probable, en mi caso era casi improbable que la tabla tuviese mas de 20 elementos, por lo que lo probé con  ‘pageLength’ : 30, y también me funcionó.

Bueno, espero que esto tan sencillo los ayude. no se olvide de dejarme sus comentarios y sobre todo de contarme sus experiencias.

Saludos


Deja una respuesta