Вопрос

я использую INNOVASTUDIO WYSIWYG редактор, и я пытаюсь заменить менеджер актива INNOWASTIO CKFinder. Отказ В конфигурации редактора есть строка для того, чтобы использовать URL для использования для менеджера актива. Я указал на это в CKFinder. Часть, которую я не могу добраться до работы, является получение поля для заполнения двойным щелчком файла от CKFinder.

Похоже, что использует параметр «Func» для указания функции обратного вызова. Урл, который я звоню: /common/ckfinder/ckfinder.html?action=js&func=setAssetValue

Редактор Innovastudio Wysiwyg предоставляет setAssetValue(v) Функция обратного вызова для настройки значения поля. То v Параметр должен держать URL.

Ckfinder всплывает, как ожидается, когда он вызывает, но ни дважды щелкнув миниатюры, ни используя опцию «Выбор» в контекстном меню. Обычное / ожидаемое поведение заключается в том, что CKFinder закрывает, и целевое поле заполняется URL для выбранного актива.


Дополнительная информация: Enternastudio Wysiwyg Editor имеет «всплывающее окно» для добавления изображения или файла Flash в контент. Это всплывающее окно в iframe. Когда он называет CKFinder (или это собственный менеджер актива), то есть также в iFrame. Похоже, что CKFinder смотрит в объем главного окна, а не изображение / Flash iFrame, которое фактически содержит поле, которое необходимо заполнить.

Это было полезно?

Решение

(Вроде) решение

Я обнаружил, выкапывая дому с Firebug, что инностанция создает ISWindow Объект, где он размещает ссылки на окна, которые он нередит. Я изменил мою функцию обратного вызова, чтобы закрутить этот объект и позвонить setAssetValue() функция для подходящего IFrame. Это сработало, но Ckeditor все еще не закрыл себя. Я предполагаю, что это потому, что он не «не знал», как закрыть iFrame, что он был внутри. Есть ли способ сказать CKFinder, как закрыть окно внутри? Я могу представить другие случаи, когда использование IFrame будет полезна.

Я бы предпочел, чтобы CKFinder использовать дисплей IFrame, но я наконец-то получил вещи, используя стандартное всплывающее окно CKFinder.

Редактор Конфигурация строки: oEdit1.cmdAssetManager = "parent.BrowseServerIS();";

Поддерживающие функции:

// InnovaStudio WYSIWYG Editor version
function BrowseServerIS()
{
   // You can use the "CKFinder" class to render CKFinder in a page:
   var finder = new CKFinder();
   // The path for the installation of CKFinder (default = "/ckfinder/").
   finder.BasePath = '/common/ckfinder/';
   // Name of a function which is called when a file is selected in CKFinder.
   finder.SelectFunction = SetFileFieldIS;
   // Launch CKFinder
   finder.Popup();
}

// InnovaStudio WYSIWYG Editor version
function SetFileFieldIS(fileUrl, data)
{
   for (var i in ISWindow.objs) {
      if ((null != ISWindow.objs[i].rt.frm.contentWindow)
            && ('function' == typeof ISWindow.objs[i].rt.frm.contentWindow.setAssetValue)) {
         ISWindow.objs[i].rt.frm.contentWindow.setAssetValue(fileUrl);
      }
   }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top