Я кодирую GM-скрипт, и одна вещь, которую я понял, что я делаю неоднократно, делает один и тот же код снова и снова. В частности, свойство стиля.Как организовать Javascript verboseness?
function createButton() {
var a = document.createElement('a');
a.href = '#';
a.innerHTML = 'Print Topic';
a.style.position = 'absolute';
a.style.right = '3em';
a.style.top = '6em';
a.style.fontFamily = 'Arial,Helvetica,sans-serif';
a.style.fontWeight = 'bold';
a.style.fontSize = '125%';
a.style.background = '#777777 none repeat scroll 0 0';
a.style.color = 'white';
a.style.padding = '6px 12px';
document.body.insertBefore(a, document.body.lastChild);
}
Как вы можете видеть в моем примере кода, я неоднократно писал a.style много раз. У вас есть методы, которые вы используете, чтобы избежать этого беспорядка? Только ради изящества.
БЛАГОДАРНОСТЬ -
Ребята, вот сокращенный код:
function createButton() {
var a = document.createElement('a');
var css = document.createElement('style');
css.type = 'text/css';
css.innerHTML = '#prt { position:absolute; right:3em; top: 6em; font-family: Arial,Helvetica,sans-serif; font-weight:bold; font-size:125%; background: #777777 none repeat scroll 0 0; color: white; padding: 6px 12px;}'
a.href = '#';
a.innerHTML = 'Print Topic';
a.id = 'prt';
document.body.insertBefore(a, document.body.lastChild);
document.body.appendChild(css);
}
LOL, что, безусловно, выглядит лучше
Действительно ли ваш «сокращенный код» должен быть шуткой или чем-то еще? –
rymn, вы также можете определить атрибуты стиля в отдельном .css-файле, а затем связать файл на своей странице с помощью тега ссылки. Другой альтернативой является определение атрибутов стиля в теге стиля. Это позволит избежать необходимости определять атрибуты стиля в JavaScript-коде. – AndreiM
HTML4.01 не позволяет создавать элементы стиля в теле, поэтому браузеры могут игнорировать их; Chrome сделал это в прошлом, я не знаю о текущих версиях - см. Http://stackoverflow.com/questions/524696/ – Christoph