[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: гемор с tinymce
Страницы: 1, 2, 3
andrey888
наворотили такого что хрен разберешься в этом tinymce.. после вывода диалогового окна мне нужно достать в нем элемент.
данная хрень
editor.windowManager.windows[0]._elmCache 
в консоли естественно выдает объект user posted image
вопрос как в этом объекте обратиться к mceu_39-body который открыт на изображении чтобы уже дальше пойти по элементам в нем...
прописываю
editor.windowManager.windows[0]._elmCache.mceu_39-body
не хочет , прописываю
editor.windowManager.windows[0]._elmCache['mceu_39-body']
тоже не отдает..

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Игорь_Vasinsky
не во-первых многие пользуются этим редактором уже довольно давно и довольны.

во вторых - этот элемент наверняка динамически созданный - так просто его не поймаешь.

в третьих - разве так обращаются к элементу по id ?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
andrey888
с ним хорошо работать когда ты сам под него ничего не пишешь wink.gif ... а вот начинаешь копаться внутрях и пипец. я делаю под него filemanager (если есть хорошо расширяемые именно под tinymce - пжлст в студию ) . Естественно он создается динамически но данная штука отрабатывает только по нажатию на кнопку уже в диалоговом окне - окно на экране, оно уже существует, хостинг тот же ниаких браузерных запретов чтобы взять элемент - нету. Значит взять его можно. при f12 дерево видно отлично.. но я где то что то не дописываю, раз не могу проникнуть в объект , его методы и т.д. имхо.

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Игорь_Vasinsky
прикручивал я и файл менеджер и ещё пару плагинов - ничё - работало и счас наверно работает, чёб не работать.

Цитата
Значит взять его можно. при f12 дерево видно отлично


))) у тебя в коде только textarea - или ты не помнишь как вставлял ещё для редактора?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
bestxp
tinymce + elfinder норм такое сочетание

притом что tinymce есть api для интеграции файловых менеджеров
andrey888
Игорь в том то и дело что прикручивал ) а не писал собственный )
прикрченный тоже стоит, но он не подходит. Moxiemanager - что то такое.
bestxp в tinymce есть куча чего прикрутить, только когда начинаешь писать что то свое под него - разгребаешь кучи непонятных вещей )... правилом KISS они не пользовались явно )
elfinder бесплатный ?


_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Invis1ble
кури API, для получения есть метод getEl(), в данном случае getEl('body') (версия 4.x)
а вообще ты версию не указал даже

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

andrey888
Invis1ble + .
Может я не то API курю, хз ?
В диалоговом окне php интерпретируется или нужно добавлять настройки ?
при
<?php echo '<h1>hello!</h1>'; ?> 

выдает hello!'; ?>


_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Invis1ble
blink.gif blink.gif
как php может интерпретироваться javascript'ом ?

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

andrey888
конечно не может biggrin.gif
я про другое. Я тут натыкался на стетейку что у tinymce куча конфликтов с другими вещами скажем с тем же jquery (сам пока не натыкался, но прочитать - прочитал) вот и вопрос возник, я в диалоговом окне без всякой лишней возни могу подключать файлы на php и делать все что угодно...
P.S. уже написал помотрел - все нормально smile.gif


_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Invis1ble
я опять нифига не понял толком, проблема решена или нет?

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

andrey888
Invis1ble biggrin.gif а ты думаешь я тебе за красивые очечи на автарке плюс в карму загнал ??.... все решено.. спасибо за наводку с getEl

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
bestxp
andrey888
а гуглом воспользоваться религия так понимаю не позволяет?
думаю BSD тип тебе многое скажет
andrey888
bestxp BSD тип ?
еще одна штука интересная.
Для примера в диалоговом окне выводим две опции: 1, 2
При нажатии на опцию 1 закрывается диалоговое окно а в самом эдиторе выводится
<span onclick="alert('1')">1</span>

При выборе опции 2 закрывается диалоговое окно а в эдиторе выводится
<a href="#">2</a>

штука в том, что если после выбора опции 1 я снова открою диалогове окно и выберу опцию 2, то вставляется не
<a href="#">2</a>

а
<span onclick="alert('1')"><a href="#">2</a></span>

будто у него где то сохраняется в памяти тег использовавшийся в первой вставке.
Пробовал и кеш и куки удалять. пробовал removeformat , тоже не помог, хотя возможно он тут вообще не при чем.

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
andrey888
создем свой плагин "myexample"

в файле plugin.min.js нашего плагина "myexample" прописывем


tinymce.PluginManager.add('myexample', function(editor, url) {
// Add a button that opens a window
editor.addButton('myexample', {
text: 'My File',
icon: false,
onclick: function() {

// Open window
editor.windowManager.open({
title: 'MY Example plugin',
url: 'http://website.local/js/tinymce/plugins/myexample/dialog.php?d=' + Math.random(),
width: 800,
height: 600,
onsubmit: function(e) {
// Insert content when the window form is submitted
editor.insertContent('Title: ' + e.data.title);
},

// нас интереует эта кнопка!!
buttons: [
{
text: 'Вставить',
onclick: function(e){
var el = editor.windowManager.windows[0].getEl('body').getElementsByTagName('iframe')[0].contentDocument.getElementById('thisfile').value;
if( el == '1' ){
editor.insertContent('<span onclick="alert(\'1\')">1</span>');
editor.windowManager.windows[0].close();
}else if( el == '2' ){
editor.insertContent('<a href="#">2</a>');
editor.windowManager.windows[0].close();
}else{
editor.insertContent('default');
editor.windowManager.windows[0].close();
}
}
}
,
{
text: 'Закрыть',
onclick: 'close'
}
]

});
}
}
);


При нажатии на кнопку "Вставить" выполняется функция. В соответствии со значением, которое мы берем из диалогового окна
var el
Если el == 1 инсертим в редактор одно, если el == 2 инсертим другое и так далее.

Проблема в том что после того как мы выбрали 1 и в редактор запихнули <span onclick="alert(\'1\')">1</span> , при повторном открытии диалогового окна и выборе опции 2 мы должны получить такой же вывод в редактор <a href="#">2</a>
НО tinymce почему то запоминает то что было введено при выборе первой опции и выводит в редактор <span onclick="alert(\'1\')"> <a href="#">2</a> </span>

Ощущение такое, что это как если мы нажимает на опцию B (болд) в редакторе - весь текст который мы вводим будет БОЛД до тех пор пока мы не нажмем повторно на эту кнопку, то есть у него запомнилось что пока кнопка нажата весь вывод в редакторе будет обрамлен в тег <strong></strong> .. и тут видимо так же.. он запонил что первый вывод обремлен в <span></span>
и далее обрамлаяет в него же и вторую опцию.

UPD
// ПИлять ВСЕ РЕШЕНА ПРОБЛЕМА ... тупо выводить не '<span></span>' а ' <span></span> ' обращаем внимание на проблел в начале и конце.

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.