Переименование кнопки пользователем.
Доброго времени суток, дамы и господа!
Возник вопрос. Есть 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, время: 10:14. |