Прикручивая визуальный html редактор к очередной CMS столкнулся с тем, что вообщем не понимаю, что делаю:
Задача такова:
При нажатии на кнопку меню появляется новое окно. В нем выбирается какой-то элемент, окно закрывается. Данные элемента передаются в родительское окно в определенную функцию для вставки в редактируемый html код.
У меня получилась такая функция:
В родительском окне:
function dialogInsertBlock()
{
var sURL = config.WM4ScriptPath + \'editor/browse_block.pl\' ;
var oWindow = window.open(sURL, \'\', \'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,titlebar=no,height=400,width=400\') ;
oWindow.insertHtml = insertHtml ;
}
function insertHtml(html) {
...
...
В дочернем окне:
function getBlock(bName)
{
window.opener.insertHtml(bName) ;
window.close() ;
}
...
...
...
<a href="javascript:getBlock(\'Text\');">Name</a>
...
...
...
Все прекрасно работает (IE точно, а совместимость с другими браузерами меня не волнует, т.к. сам редактор пашет только в EI).
Меня смущает строка:
oWindow.insertHtml = insertHtml ;
Никак не могу понять принцип её работы...
Мы добавляем в объект oWindow эту функцию, или же просто возвращаем данные из родительского окна? но тогда почему не передаем функции insertHtml никаких данных???