Справочник по CSS : Тематический указатель : Методы : setExpression

смотрим также
    оборудование для диспетчерской по сниженной цене. подробно на D2k.Ru

Материал из Справочник Web-языков

Перейти к: навигация, поиск


Содержание

Метод setExpression

С помощью этого метода задают выражение для нужного свойства.

Синтаксис

object.setExpression(sPropertyName, sExpression [, sLanguage])

Используемые значения

sPropertyName Обязательная часть. Строковое значение, которое задает имя свойства, для которого нужно задать выражение.
sExpression Обязательная часть. Строковое значение, которое задает само выражение, написанное на одном из языков (JScript, JavaScript, VBSCript). Должно быть без комментариев и точек с запятыми. Строка может содержать ссылки на другие свойства, находящиеся на этой странице.
sLanguage Необязательная часть. Строковое значение, определяющее одно из возможных значений:
JScript
Значение по умолчанию. Язык программирования - JScript.
VBScript
Язык программирования - VBScript.
JavaScript
Язык программирования - JavaScript.

Возвращаемое значение

У свойства нет возвращаемого значения.

Замечания

С помощью метода setExpression можно добавлять выражения для CSS атрибутов и DHTML свойств. Чтобы удалить выражение, заданное с помощью метода setExpression используйте метод removeExpression.

Ниже представлены фрагменты кода, с помощью которых можно задать выражения для различных CSS и DHTML свойств.

  • Этот код нужен для получения выражения для считываемого/записываемого свойства или свойства expando:
object.setExpression(sPropertyName, sExpression, sLanguage)
  • Этот код нужен для получения выражения для CSS атрибута:
object.style.setExpression(sPropertyName, sExpression, sLanguage)
  • Используйте синтаксис expression(), чтобы задать выражение для CSS атрибута в HTML:
<ELEMENT STYLE="sAttributeName:expression(sExpression)">

Тип данных вычисляемого выражения в параметре sLanguage должен удовлетворять одному из возможных значений параметра sExpression.

Используйте свойство объекта uniqueID в выражении, чтобы ссылаться на объект. Использование uniqueID - это альтернатива использования идентификатора id для ссылки на объект.

Не используйте свойство cssText с любыми динамическими методами свойств.

Следующие фрагменты кода иллюстрируют различные проблемы, возникающие при несовпадении типов:

  • Значение sExpression недопустимое, т.к. значением document.style.fontSize является npx, и к нему нельзя добавить 13.
object.style.setExpression("height","document.style.fontSize + 13"); 
  • Значение sExpression недопустимое, т.к. первоначально значение для document.body.style.fontSize не задано.
object.style.setExpression("width","document.body.style.fontSize"); 

Примеры

В примерах показывается как использовать метод setExpression для изменения ширины синего блока. В каждом примере ширина синего блока равна сумме значений для ширины двух первых текстовых блоков. Когда изменяется ширина одного из первых блоков, ширина синего блока вычисляется заново. В первом примере показана реализация метода setExpression в HTML.

<INPUT TYPE=text ID=oBox1 value=40>Сумма значений для ширины этих двух текстовых блоков будет шириной <BR>
<INPUT TYPE=text ID=oBox2 value=40>синего блока, находящегося ниже.
<BR><INPUT TYPE=text ID=oBox3 
    STYLE="width:expression(eval(oBox1.value) + 
    eval(oBox2.value));background-color:blue">
<BR><INPUT TYPE=button ID=Button 
    value="Кликните для перерасчета ширины синего блока" 
    onclick="recalc()">

Во втором примере используется метод setExpression и свойство uniqueID, чтобы обновить свойство innerText в строке таблицы.

<SCRIPT>
window.onload=fnInit;
function fnInit(){
   var iLen=oSheet.rows.length-1;
   for(var i=1;i<iLen;i++){
      var oRow=oSheet.rows[i];
      var oCells=oRow.cells;
      oCells(3).setExpression("innerText",
         "fnGetValue(" + oRow.uniqueID + ")");
   }
   var oGrand=oSheet.rows(iLen).cells(1);
   oGrand.setExpression("innerText","fnGetTotal()");
}
function fnGetTotal(){
   var iValue=0;
   var iLen=oSheet.rows.length-1;
   for(var i=1;i<iLen;i++){
      iValue+=parseFloat(oSheet.rows(i).cells(3).innerText);
   }
   return iValue;
}
function fnGetValue(oRow){
   var oCells=oRow.cells;
   var oPrice=oCells(2);
   var oQuantity=oCells(1);
   var sPrice;
   var sQuantity;
   if(oPrice.childNodes[0].nodeName=="#text"){
      sPrice=oPrice.innerText;
   }
   else{
      var vPrice=oPrice.childNodes[0].value;
      sPrice=(vPrice==""?"0":vPrice);
   }
   if(oQuantity.childNodes[0].nodeName=="#text"){
      sQuantity=oQuantity.innerText;
   }
   else{
      var vQuantity=oQuantity.childNodes[0].value;
      sQuantity=(vQuantity==""?"0":vQuantity);
   }
   var vAlg1=parseFloat(sPrice) * parseFloat(sQuantity);
   return vAlg1;
}
</SCRIPT>

<TABLE ID="oSheet">
<TR><TH>Продукт</TH><TH>Количество</TH>
<TH>Цена за единицу</TH><TH>Итого</TH></TR>
<TR><TD>Browser Putty</TD><TD EDIT="true">2</TD>
<TD EDIT="true">4.99</TD><TD></TD></TR>
<TR><TH COLSPAN=3>Конечное количество</TH><TH></TH></TR>
</TABLE>

Смотрите также

getExpression, removeExpression

Ссылки на источники

http://msdn.microsoft.com/en-us/library/ms531196(VS.85).aspx

Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="http://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования