2016-02-14 3 views
0

У меня есть CKEditor с config.fullPage = true;, поэтому у меня есть целый документ для работы.Как изменить элемент в CKEditor

Моя цель - автоматически найти и изменить действие всех элементов form в содержимом CKEditor. Я попытался использовать метод преобразования строки html в jquery и обратно без везения (я думаю, это потому, что я работаю с полным документом).

Любая помощь очень ценится!

+0

Вы хотите изменить все элементы формы в CkEditor ?? – Transformer

+0

Да, похоже на то, что я мог бы сделать в jquery с помощью $ ("form"). Attr ("action", "") – Jordan

+0

, то есть вы хотите создать элемент на основе собственного элемента DOM. в CKEditor – Transformer

ответ

0

UPDATE

проверить это CKEditor Jquery Adapter, и вы также можете получить HTML элемента с .getHtml.

ДРУГОЙ UPDATE

$("#mybutton").click(function(){ 
    var editor_contents = CKEDITOR.instances[YOUR_TEXTAREA_ID].getData(); 
    var dom = document.createElement("DIV"); 
    dom.innerHTML = editor_contents 
    var plain_text = (dom.textContent || dom.innerText); 
    alert(plain_text); 
}); 
+0

Это хорошо для создания нового элемента, но моя цель - найти все существующие элементы формы и заменить в них атрибут. Вариант использования заключается в том, что у меня есть пользователи, сохраняющие полные HTML-документы, содержащие формы. При нажатии кнопки, которая сохраняет документ, я хочу изменить формы, найденные в документе HTML, чтобы иметь другой атрибут. – Jordan

+0

этот атрибут, который вы хотите заменить в существующем элементе формы, что он должен делать, как его функциональность – Transformer

+0

Спасибо за обновления! Функция '' '.replace()' '' не совсем то, что я ищу, поскольку она заменяет найденный элемент полным экземпляром CKEditor. То, что я пытаюсь сделать, это иметь функциональность, которая, например, когда пользователь нажимает «Сохранить», я буду автоматически анализировать HTML, который является '' 'editor.val()' '' для любых элементов формы и изменить свой атрибут действия. Затем я отправляю полную (измененную) HTML-строку в API. Вкратце, мне нужно иметь возможность изменять элементы * в HTML-коде CKEditor и получать итоговую полную строку HTML. – Jordan

1

Если editor является экземпляром вашей CKEditor, то вызов editor.editable().$ получит вам родной элемент тела из фрейма, то вы можете продолжать использовать методы DOM или JQuery, если вы предпочитаете ,

jQuery(editor.editable().$).find('form').attr('action', ''); 
+0

Преобразование его в jquery отлично работает, хотя у меня довольно много проблем с возвратом строки HTML из jquery. Поскольку '' 'editor.editable(). $' '' Представляет список элементов DOM, просто вызов '.' .html() '' 'в строке jquery не возвращает полный HTML. – Jordan

+0

Я не понимаю, что вы хотите сделать. Если вы хотите получить полный HTML, используйте API CKEditor и вызовите editor.getData() Я не понимаю, почему вы хотите использовать jQuery – AlfonsoML

+0

Я могу получить строку HTML с editor.getData(). То, что я хочу сделать, - это обработать эту строку как dom и использовать jquery для изменения любых элементов формы, которые были в этой строке HTML. Затем я хочу преобразовать этот измененный dom обратно в строку, чтобы я мог отправить его с помощью обратного вызова API в мою базу данных. В принципе, вместо того, чтобы делать find/replace в HTML-строке, я бы предпочел использовать jquery как посредника, если возможно, быть более точным. – Jordan