Переименование кнопки пользователем.
Доброго времени суток, дамы и господа!
Возник вопрос. Есть HTML-панель расширения для Photoshop. Хочу в ней сделать отдельную вкладку с незанятыми кнопками. Как-то вот так: <button class="button_color" id="Cb1">A1</button> <button class="button_color" id="Cb2">A2</button> <button class="button_color" id="Cb3">A3</button> <button class="button_color" id="Cb4">A4</button> И так далее. Как подвесить на каждую кнопку пользовательский Action понятно. Это в самом Photoshop делается. А дальше скриптом уже управлять: $("#Cb1").button().click(function(a){csInterface.evalScript('$._ext.evalFile("'+extensionRoot+'Cb_1/1.jsx")')}); $("#Cb2").button().click(function(a){csInterface.evalScript('$._ext.evalFile("'+extensionRoot+'Cb_1/2.jsx")')}); $("#Cb3").button().click(function(a){csInterface.evalScript('$._ext.evalFile("'+extensionRoot+'Cb_1/3.jsx")')}); $("#Cb4").button().click(function(a){csInterface.evalScript('$._ext.evalFile("'+extensionRoot+'Cb_1/4.jsx")')}); А можно ли как-то сделать так, чтобы пользователь мог сам переименовывать кнопки А1, А2, А3, А4, ...? Ну и чтобы эти названия сохранялись и после выхода из Photoshop. Подозреваю, что это, наверное, не очень сложно. Но так как я с JS строго на "Вы", то не знаю даже с какого боку подступать. Даже как правильно запрос написать в поисковике не сообразить. Заранее благодарю за любую помощь. |
vospa, здравствуйте. В этом расширении можно и html и js и стили писать?
Так подойдет? <head> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> <script src="//code.jquery.com/jquery-1.9.1.min.js"></script> <style> .button_color { width: 60px; } .fa-cog { float: right; font-size: 14px; color: #5f5f5f; opacity: 0.5; } .fa-cog:hover { font-size: 16px; opacity: 1; } </style> <script> $(function() { $(".button_color").each(function() { if (localStorage.getItem(this.id)) { $(this).contents().eq(0).replaceWith(localStorage.getItem(this.id)) } }); $(".fa-cog").click(function(e) { e.stopPropagation(); var x = prompt("Введите имя для кнопки"); if (x) { $(this).parent().contents().eq(0).replaceWith(x); localStorage[$(this).parent().attr("id")] = x; } }); }) </script> </head> <body> <button class="button_color" id="Cb1">A1<i class="fa fa-cog"></i></button> <button class="button_color" id="Cb2">A2<i class="fa fa-cog"></i></button> <button class="button_color" id="Cb3">A3<i class="fa fa-cog"></i></button> <button class="button_color" id="Cb4">A4<i class="fa fa-cog"></i></button> </body> |
Manyasha,
Ох, большое человеческое спасибо Вам, добрый человек!!! :thanks: Да, теперь в расширениях для фотошопа, да и в остальных продуктах адобов, можно и html, и js, и стили писать. Вроде, то, что надо. Доберусь до своего компа, уже на самой панели проверю. |
Manyasha,
Эхх... похоже я рано обрадовался... :( На сайте все работает отлично, а вот в панели не хочет. При нажатии на иконку шестеренки, окошко "Введите имя для кнопки" тупо не появляется... ПЫ.СЫ. В хроме все работает, а в лисе и ИЕ нет... Ну и в панели тоже... :( |
|
Цитата:
Надеялся, что может прокатит без этих адобовских нюансов. Увы... Максимум на что меня хватило, это научиться запаковывать расширения в .zxp. Но это настолько там разжевано, что даже такой нуб, как я, разобрался :D Но все равно спасибо :-) |
Manyasha,
Я идиот... :cray: Все работает. Перенес текст скрипта из html в управляющий js и все заработало :dance: Еще раз, огромное человеческое спасибо! :thanks: |
Пожалуйста:victory:
Цитата:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script> <style> .button_color { width: 60px; } .fa-cog { font-size: 14px; color: #5f5f5f; opacity: 0.5; margin-right:5px; } .fa-cog:hover { opacity: 1; } </style> <script> $(function() { $(".button_color").each(function() { if (localStorage.getItem(this.id)) { $(this).text(localStorage.getItem(this.id)) } }); $(".fa-cog").click(function(e) { var x = prompt("Введите имя для кнопки"); if (x) { $(this).prev().text(x); localStorage[$(this).prev().attr("id")] = x; } }); }) </script> </head> <body> <button class="button_color" id="Cb1">A1</button><i class="fa fa-cog"></i> <button class="button_color" id="Cb2">A2</button><i class="fa fa-cog"></i> <button class="button_color" id="Cb3">A3</button><i class="fa fa-cog"></i> <button class="button_color" id="Cb4">A4</button><i class="fa fa-cog"></i> </body> </html> |
Цитата:
|
Часовой пояс GMT +3, время: 01:26. |