Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2012, 11:31   #1
Vlad2068
Новичок
Джуниор
 
Регистрация: 18.01.2012
Сообщений: 4
По умолчанию Плагин на CKEDITOR

Здравствуйте.
Была необходимость написать плагин, который бы по выделенному тексту открывал бы окно и искал на сервере что-то, потом выдавался бы список найденного, человек тыкает на необходимое, окно закрывается и в визе выделенный текст окружается ссылкой с переданными из окна параметрами.

Единственно непонятно как перделать этот список из ф-ии ажакса в contents. Примерный код ниже:

Код:
CKEDITOR.plugins.add( 'goodlink', {
	init: function( editor ){
  editor.addCommand( 'insertGoodlink', new CKEDITOR.dialogCommand( 'insertGoodlink' ));
	editor.ui.addButton( 'Goodlink', {
	label: 'Insert Goodlink',
	command: 'insertGoodlink',
	icon: this.path + 'images/goodlink.png'
  });

CKEDITOR.dialog.add( 'insertGoodlink', function( editor ){
  var var1;
  var selectedtext = editor.getSelection().getSelectedText();
   $.ajax({
     type: "POST",
     url: "/back/articles/e.php",
     data: "action=search_search&search_name="+selectedtext+"&lang_id=1",
     success: function(msg){
       var1 =  msg;
     }
   });

  
	return {
		title : 'Link Properties',
		minWidth : 400,
		minHeight : 200,
		contents :
		[
			{
				id : 'general',
				label : 'Settings',
				elements :
				[
				 	{
      		type : 'html',
      		html : var1
      	  },
				]
			}
		]
	};
});  

	}
} );
Vlad2068 вне форума Ответить с цитированием
Старый 18.01.2012, 12:31   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

добавьте в свойства ajax-запроса async:false
в противном случае (как у вас) ответ от сервера приходит после ретурна функции, где используется переменная var1 (она еще пустая)
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 18.01.2012, 14:31   #3
Vlad2068
Новичок
Джуниор
 
Регистрация: 18.01.2012
Сообщений: 4
По умолчанию

Спасибо, помогло, но встал уже другой вопрос. при повторном открытии модального окна оно не обновляется, поставил все в onShow
теперь отсюда var1 опять не виден

Код:
.......
CKEDITOR.dialog.add( 'insertGoodlink', function( editor ){
var var1 = "";
	return {
		title : 'Link Properties',
		minWidth : 400,
		minHeight : 200,
		onShow: function(){
      var selectedtext = editor.getSelection().getSelectedText();
       $.ajax({
         type: "POST",
         url: "/back/articles/e.php",
         async:false,
         data: "action=search_search_from_CK&search_name="+selectedtext+"&lang_id=1",
         success: function(msg){
           window.var1 =  msg;
         }
       });
		},
.......
Vlad2068 вне форума Ответить с цитированием
Старый 18.01.2012, 14:55   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

В функции
Код:
CKEDITOR.dialog.add( 'insertGoodlink', function( editor ){ ...
вы создаете локальную переменную var1.
А в callback ajax-запроса объявляете глобальную var1, которая не будет видна из первой ф-ии, в которой "переопределена" своя, локальная.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 18.01.2012, 16:21   #5
Vlad2068
Новичок
Джуниор
 
Регистрация: 18.01.2012
Сообщений: 4
По умолчанию

Очень сложно для начинающего...
А как сделать, чтобы из success: function(msg){

она стала видна тут
html : var1
?
Vlad2068 вне форума Ответить с цитированием
Старый 18.01.2012, 16:46   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Можно просто не определять ее в начале функции — будет использоваться глобальная переменная.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 18.01.2012, 18:31   #7
Vlad2068
Новичок
Джуниор
 
Регистрация: 18.01.2012
Сообщений: 4
По умолчанию

Так я пробовал, выдает
Код:
var1 is not defined
[Прерывать на этой ошибке] 	

html : var1
Vlad2068 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CKEditor 3 m_hamlet PHP 0 01.03.2011 16:34
CKEditor ограничение размера изображения roma86 JavaScript, Ajax 0 20.03.2010 18:02
Не совместимость mysql и ckeditor Drek PHP 13 08.01.2010 22:41
плагин к винампу askerpro Мультимедиа в Delphi 9 26.09.2009 13:17