Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   SyntaxHighlighter 3.0.83 - подключить toolbar (https://javascript.ru/forum/library-toolkit-framework/11456-syntaxhighlighter-3-0-83-podklyuchit-toolbar.html)

Paska 24.08.2010 22:28

SyntaxHighlighter 3.0.83 - подключить toolbar
 
Всем здрасте. Использую замечательную библиотеку для подсветки кода. Здесь пример.
есть вопросы:

1. как добавить кнопки в toolbar. В примере (по умолчанию) загружется toolbar справа, в котором только 'help'. я так понял, что это осуществляется при помщи js и методов, описанных в shCore.js. но не могу понять как именно.

2. есть ли возможность вывести эти кнопки за пределы панели (или саму панель переместить). в примере см. линки - 'view source' и 'copy to clipboard'.

не так уж сильно рублю в js, что бы понять как работает эта библиотека.

заранее СПС.

B@rmaley.e><e 25.08.2010 04:25

1. В версии 2.0 кнопки добавлялись добавлением в toolbar.items функции-конструктора вида
function (e) {
	this.create = function () { // функция, вызывающаяся при создании кнопки. Возвращает содержимое ссылки-кнопки либо сразу DOM узел
		if (e.getParam('collapse') != true) return;
		return k.config.strings.expandSource
	};
	this.execute = function (element, event) { // функция, вызывающаяся при клике по кнопке
	}
}
по некоторому ключу name.

Paska 25.08.2010 11:45

ок, спс, буду разбираться.

Paska 25.08.2010 12:05

а как этим пользоваться, не подскажешь? как и где вызывать эту функцию и что за аргумент (e)?

я делаю так (исользую jquery и вставляю в конец документа) и не работает.

$(function(){
	function (e) {
		this.create = function () { // функция, вызывающаяся при создании кнопки. Возвращает содержимое ссылки-кнопки либо сразу DOM узел
			if (e.getParam('collapse') != true) return;
			return k.config.strings.expandSource
		};
		this.execute = function (element, event) { // функция, вызывающаяся при клике по кнопке
		}
	}
});


и какой должен быть код в ф-ии -
function (element, event) { // функция, вызывающаяся при клике по кнопке
// код?
}

Paska 02.09.2010 15:26

если кому интересно, вот что получилось.

правда я так и не понял до конца как под себя изменить / добавить код shCore.js, который идет в папке /src.
взял скрипт с уже созданными кнопками и немного его дописал.

- view copy - по клику вызывается уже существующая ф-я this.execute для кнопки view sourse (при этом нужно было вычеслить и передать соответствующий id блока .syntaxhighlighter);

- copy to clipboard - так как существующий скрипт был версии 2.1.364, то сдесь копирование осуществляется через .swf файл. скопировал тэги <embed> в соответствии с необходимыми id для нужного кода в блоки copy to clipboard и наложил (при этом сам флэшь файл подредактировал что бы он был прозрачным прямоугольником) на надпись "copy to clipboard". вышло не совсем гуд, так как немного гючит когда наводишь мышь на copy to clipboard (ff 3.6, chrome 5), a в safari 4.0.5 - прозрачный прямоугольник залился цветом фона. пока еще не знаю как с этим справиться, потому как во флэшь я еще ню бой.

если кто будет смотреть пример, просьба сообщать о багах (по функционалу двух кнопок).


Часовой пояс GMT +3, время: 14:27.