Невозможно связать YoastSEO.js с текстовой областью Ckeditor 5
Ищите решение, чтобы связать текстовое поле Ckeditor с полем контента Yoast, чтобы оно могло извлекать из него контент.
Код для Ckeditor 5.
var editorinstance;
ClassicEditor.create(document.querySelector('#editor'), {
ckfinder: {
uploadUrl: '{{ url("article-image-upload") }}?_token={{ csrf_token() }}'
},
mediaEmbed: {
// configuration...
}
}).then(editor => {
editorinstance = editor;
editor.model.document.on('change', () => {
document.querySelector('#counter').innerText = 'Length of the text in the document: ' + countCharacters(editor.model.document);
});
// editor.model.document.on( 'keyup', () => {
// document.querySelector('#counter').innerText = 'Length of the text in the document: ' + countCharacters( editor.model.document );
// } );
// Update the counter when editor is ready.
document.querySelector('#counter').innerText = 'Length of the text in the document: ' + countCharacters(editor.model.document);
//editor.isReadOnly = true;
// var dataaaa = editor.getData();
// console.log(dataaaa)
})
.catch(error => {
console.error(error);
});
Код для YoastSEO.js
var focusKeywordField = document.getElementById( "focusKeyword" );
var contentField = document.getElementById( "editor" );
var snippetPreview = new YoastSnippetPreview({
targetElement: document.getElementById( "snippet" ),
baseURL: "{{url('/')}}/",
placeholder:{
urlPath:"slug goes here"
}
});
var app = new YoastApp({
snippetPreview: snippetPreview,
targets: {
output: "output"
},
callbacks: {
getData: function() {
return {
keyword: focusKeywordField.value,
text: contentField.value
};
}
}
});
app.refresh();
focusKeywordField.addEventListener( 'change', app.refresh.bind( app ) );
contentField.addEventListener( 'change', app.refresh.bind( app ) );
Теперь проблема с этой строкой,
var contentField = document.getElementById( "editor" );
Он не связывает текстовую область CKEditor5 для юга. Это не показывает никакой ошибки, но длина текста остается 0.
Пытался использовать editorinstance
но addEventListener
функция не работает с этим.
Любая помощь приветствуется!