Глаза страшат, а руки делают

ЧАСТЬ ВТОРАЯ


20. Объект String
Методы форматирования строк

  • список методов;
  • методы гиперссылок;
  • методы атрибутов шрифта;
  • методы тэгов форматирования.

Методы форматирования строк (иногда их называют нестандартными методами) соответствуют тэгам HTML — с атрибутами или без. Если метод имеет значение тэга с атрибутом, то параметр атрибута указывается как параметр аргумента.

Названия некоторых (но не всех) методов соответствуют тэгам.

Ниже приведена таблица соответствий.

Метод

Тэг

Атрибут

anchor(имя)

<a>

name

big()

<big>

 

blink()

<blink>

 

bold()

<b>

 

fixed()

<tt>

 

fontcolor(цвет)

<font>

color

fontsize(размер)

<font>

size

italics()

<i>

 

link(адрес)

<a>

href

small()

<small>

 

strike()

<strike>

 

sub()

<sub>

 

sup()

<sup>

 


Все эти методы можно условно разделить на

  • методы гиперссылок — anchor(), link();
  • методы атрибутов шрифта — fontcolor(), fontsize();
  • методы тэгов форматирования — все остальные.

Методы гиперссылок

Метод anchor()

Создаёт из строки «якорь» для гиперссылки.

Синтаксис

строка.anchor(имя)

Аргументы

строка — объект String.

имя — строка, определяющая имя якоря.

Примечание

Обычно используется вместе с методами document.write() и document.writeln()

Пример

var myString = "Оглавление";
document.writeln(myString.anchor("contents"));

Ведёт себя так же, как и следующий HTML-код:

<a name="contents">Оглавление</a>

Метод link()

Создаёт из строки гиперссылку.

Синтаксис

строка.link(адрес)

Аргументы

строка — объект String.

адрес — строка, определяющая URL гиперссылки.

Примечание

Обычно используется вместе с методами document.write() и document.writeln()

Пример

var myString = "Оглавление";
document.writeln(myString.link("contents.html"));

Ведёт себя так же, как и следующий HTML-код:

<a href="contents.html">Оглавление</a>

Методы атрибутов шрифта

Примечание автора

Тэг <font> со всеми его причиндалами, то бишь атрибутами, считается (и правильно считается) устаревшим. Вместе с ним устарели и эти методы. Но поскольку они существуют и до сих пор работают, иметь о них представление будет нелишним. На практике же советую применять альтернативные методы для вызова стилей CSS. О них речь впереди.

К методам атрибутов шрифта относятся fontcolor() и fontsize(). Работают они по той же схеме, что и методы гиперссылок.

Синтаксис

строка.fontcolor(цвет)
строка.fontsize(размер)

Аргументы

цвет — строку с литералом или шестнадцатеричным кодом цвета шрифта.

размер — число, представляющее один из 7 абсолютных размеров шрифта HTML, или строка, представляющая отностиельный размер шрифта HTML.

Примечания

Аргумент метода fontcolor() — всегда строка, то есть всегда в кавычках. Литералы («словесные» имена) 140 цветов, используемые в JavaScript и HTML, можно посмотреть в таблице-приложении. Шестнадцатеричные значения, наподобие #FF0000 или #000080, тоже заключаются в кавычки.

Аргументы метода fontsize(), представленные строковыми или численными значениями, работают по-разному.

Параметры абсолютных размеров шрифта (от 1 до 7) возможны как в численном, так и в строковом представлении. То есть выражения строка.fontsize(3) и строка.fontsize("3") эквивалентны.

Относительные параметры (с плюсом или минусом) работают только в строковом представлении (в кавычках). Без кавычек они тоже «работают», но неправильно.

строка.fontsize("+2")  // увеличивает текущий размер шрифта на 2 позиции
строка.fontsize("-2")  // уменьшает текущий размер шрифта на 2 позиции
строка.fontsize(+2)    // задаёт абсолютный размер 2
строка.fontsize(-2)    // любое отрицательное значение
                       // задаёт абсолютный размер 1

Методы тэгов форматирования

Оставшиеся методы форматирования соответствуют безатрибутным тэгам. Все соответствия указаны в таблице выше.

Синтаксис у всех этих методов одинаковый. В качестве «болванки» привожу метод big(). Для остальных нужно просто поменять имя метода.

Метод big()

Помещает строку внутрь парного тэга <big></big>.

Синтаксис

строка.big()

Аргумент

строка — объект String.

Примечание

Обычно используется вместе с методами document.write() и document.writeln()

Пример

var myString = "Увеличим этот текст";
document.writeln(myString.big());

Ведёт себя так же, как и следующий HTML-код:

<big>Увеличим этот текст</big>

Методы — не тэги!

Хотя методы вроде бы выполняют то же, что и тэги HTML, они не могут полностью заменить эти тэги. Это касается, например, невозможности программного применения к ним стилей CSS.

Предположим, у нас есть такой код HTML:

<big style="color: red;">тест</big>

Попытаемся сделать это через метод big() — например, так:

<script type="text/javascript">
var mystring = "тест"
var mybigstring = mystring.big()
mybigstring.style.color = "red"
document.write(mybigstring)
</script>

При запуске скрипта мы получим следующее сообщение: "mybigstring.style" есть null или не является объектом.

Чтобы этот скрипт заработал, нужно, во-первых, строку

mybigstring.style.color = "red"

заменить на

document.getElementsByTagName("big")[0].style.color = "red"

а во-вторых, поставить её в конец скрипта, после метода document.write().

Но об этом — чуть позже, когда будем подробно рассматривать методы документа.

Немного поясню механизм: метод big() создаёт тэг как «обёртку» для заданной строки, то есть в само содержание строки этот тэг не входит. Поэтому, когда мы назначаем стиль на строку, нас не понимают. Метод document.getElementsByTagName(...)[...] обращается непосредственно к тэгу.

НО!

Реальный тэг создаётся методом document.write(). Пока не появился этот метод, тэга нет. Поэтому нас опять же не поймут, если мы раньше времени сошлёмся на несуществующий тэг.


Итак, мы узнали:

как можно и как нельзя форматировать строки с помощью методов JavaScript.


К следующему уроку >>


 003915