Динамическое добавление обработчика событий в JavaScript
От: Аноним  
Дата: 15.02.03 10:43
Оценка:
Люди, помогите

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">

<style>
      a.shortcut {text-decoration:none;font-size:10px;}
      a.shortcut:visited {text-decoration:none;}
</style>

<script language="JavaScript1.2"> <!--

var lostForm = 0; //индекс формы, которой принадлежит элемент потерявший фокус
var lostInput = 0; //индекс элемента, потерявшего фокус

//Функция, которая динамически добывляет обработчик события onBlur ко всем элементам ввода
function genOnBlur() {
  var j = 0;
  var i = 0;
  for(j=0; j< document.forms.length; j++) {
    for(i=0; i < document.forms[j].elements.length; i++) {
       document.forms[j].elements[i].onBlur = loseFocus(j,i);
    }
  }
  lostForm = 0;
  lostInput = 0;
}

//Функция, которая присваивает глобальным переменным lostForm и lostInput значения элемента потерявшего фокус
function loseFocus(formIndex,inpIndex) {
   lostForm = formIndex;
   lostInput = inpIndex;
}

//Функция, которая добавляет tag в поле ввода
function addTag(tagName) {
    var val = document.forms[lostForm].elements[lostInput].value;
    val = val + tagName;
    document.forms[lostForm].elements[lostInput].value = val;
}

//Создаем панель форматирования текста
function addBar() {
    document.all.bar.innerHTML = "";
    str = "<a href=\"javascript:addTag('<BR>')\" class=\"shortcut\">Перенос строки</a>&nbsp;|&nbsp;";
    str += "<a href=\"javascript:addTag('<B></B>')\" class=\"shortcut\"><b>B</b></a>&nbsp;|&nbsp;";
    str += "<a href=\"javascript:addTag('<I></I>')\" class=\"shortcut\"><I>I</I></a>&nbsp;|&nbsp;";
    str += "<a href=\"javascript:addTag('<U></U>')\" class=\"shortcut\"><U>U</U></a>&nbsp;|&nbsp;";
    str += "<a href=\"javascript:addTag('<SUP></SUP>')\" class=\"shortcut\">A<sup>2</sup></a>&nbsp;|&nbsp;";
    str += "<a href=\"javascript:addTag('<SUB></SUB>')\" class=\"shortcut\">A<sub>2</sub></a>&nbsp;|&nbsp;";
    str += "<a href=\"javascript:addTag('&laquo;')\" class=\"shortcut\">&laquo;</a>&nbsp;|&nbsp;";
    str += "<a href=\"javascript:addTag('&raquo;')\" class=\"shortcut\">&raquo;</a>&nbsp;|&nbsp;";
    str += "<a href=\"javascript:addTag('&mdash;')\" class=\"shortcut\">&mdash;</a>&nbsp;|&nbsp;";
    document.all.bar.innerHTML = str;
}  
-->
</script>

</HEAD>

<body onload="addBar(); genOnBlur();">
<div id="bar"></div>
<form action="" name="form1" method="post">
  <input type="text" name="inp1" value=""><br>
  <textarea cols="25" rows="5" name="txt1"></textarea><BR>
  <INPUT TYPE="reset">
</form>
</body>
</html>


Не работает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.