nim Posted July 2, 2007 Report Share Posted July 2, 2007 <html><head><script type='text/javascript'>function init_t(obj){ obj.innerHTML = "<tr><td>Hello</td></tr>";}</script></head><body><form name="form1" method="post" action="Default.aspx" id="form1"><table id="mytable" > <script type='text/javascript'> init_t(this); </script></table></form></body></html> Link to comment Share on other sites More sharing options...
0 PacMan Posted July 2, 2007 Report Share Posted July 2, 2007 Нет Link to comment Share on other sites More sharing options...
0 kiD Posted July 2, 2007 Report Share Posted July 2, 2007 <html><head><title>(X)</title><style type="text/css">div{ border:1px solid #000;}</style><script type='text/javascript'>function init_t(obj,vl){ obj.innerHTML = vl;}</script></head><body><div class="container"> <div onclick='init_t(this,"<div>Hello</div>");'>left</div></div></body></html> Link to comment Share on other sites More sharing options...
0 nim Posted July 2, 2007 Author Report Share Posted July 2, 2007 kiD ну мне DIV не нужен а нужна таблица и событие не клик а загрузка страницы, проблема в том что table вообще не воспринимает innerHTML, хотя свойство меняется, но ничего не происходит и ошибка не вылазит. Link to comment Share on other sites More sharing options...
0 kiD Posted July 2, 2007 Report Share Posted July 2, 2007 onload Link to comment Share on other sites More sharing options...
0 Zeroglif Posted July 2, 2007 Report Share Posted July 2, 2007 nim, По поводу времени исполнения скрипта - если нужно что-то сделать по мере загрузки, то на это есть onload или же на крайний случай можно разместить скрипт где-то ниже элементов, с которыми предстоит работать скрипту. По поводу this - нужно вам просто поизучать это дело, в 2-х словах не объяснишь, в этом скрипте значением this является ссылка на окно (объект window), которому вы созда?те зачем-то свойство innerHTML, и смысла это не имеет вовсе.По поводу строительства таблицы через innerHTML - не лучшее решение, например, в IE таким образом таблицы не строят, надо по-другому. Link to comment Share on other sites More sharing options...
0 nim Posted July 2, 2007 Author Report Share Posted July 2, 2007 спасибо за ответы. попрошу еще, чтоб лишнюю тему не создавать, посмотреть работает ниже следующий под браузерами оперы, фф и ie7, посмотрите пож. у кого установлены.<html><body><script type='text/javascript'>var h = new ActiveXObject("Scripting.Dictionary");h.add ("a", "test");if (h.Exists("a")){ alert('exist');}</script></body></html> Link to comment Share on other sites More sharing options...
0 yopopt Posted July 2, 2007 Report Share Posted July 2, 2007 Конечно не работает и смотреть нечего. ActiveX ведь используете. Link to comment Share on other sites More sharing options...
0 Maslakoff Posted July 2, 2007 Report Share Posted July 2, 2007 если this.table, то может и будет) Link to comment Share on other sites More sharing options...
0 nim Posted July 2, 2007 Author Report Share Posted July 2, 2007 yopopt в аналогичном случае (AJAX) я делал так: if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); }А как быть с Scripting.Dictionary ? Link to comment Share on other sites More sharing options...
0 yopopt Posted July 2, 2007 Report Share Posted July 2, 2007 Про Scripting.Dictionary не знаю ничего, но как понял это массив. Можно сделать вот так: <script type='text/javascript'>var h = new Array("a", "test");if (h[0]!==undefined){ alert('exist');}</script>Я не понимаю задачу данного скрипта. Link to comment Share on other sites More sharing options...
0 nim Posted July 2, 2007 Author Report Share Posted July 2, 2007 yopopt хеш таблица, это специфический массив. В него добавляются значения по ключу, по немуже они потом извлекаются. Например у вас есть код записи, по этому коду вы можете получить поля этой записи. Link to comment Share on other sites More sharing options...
0 yopopt Posted July 2, 2007 Report Share Posted July 2, 2007 Ну что-ж, тогда можно так:<script type='text/javascript'>var h = { 'a' : 'a', 'test' : 'test', 'ключ' : 'запись'}if (h['a']!==undefined){ alert('exist');}</script> Link to comment Share on other sites More sharing options...
0 nim Posted July 2, 2007 Author Report Share Posted July 2, 2007 ну может этот вариант и похож на хештаблицу, есть сомнение в производительности данного подхода. Добавлять новые значение через push? и еще вопрос почему вы пишете h['a']!==undefined а не h['a'] != null ? в си подобных языках используется имменно такая конструкция, особенно смущает !== вместо != Link to comment Share on other sites More sharing options...
0 Maslakoff Posted July 2, 2007 Report Share Posted July 2, 2007 nim, !== - это либо "строгое НЕ РАВНО", либо просто автор случайно нажал на "=" два раза ) Link to comment Share on other sites More sharing options...
0 nim Posted July 2, 2007 Author Report Share Posted July 2, 2007 ждем прояснений Link to comment Share on other sites More sharing options...
0 yopopt Posted July 2, 2007 Report Share Posted July 2, 2007 ну может этот вариант и похож на хештаблицу, есть сомнение в производительности данного подхода.У меня тоже. Но вот так сходу ничего другого предложить не могу. Вы же не собираетесь добавлять значения тысячами?и еще вопрос почему вы пишете h['a']!==undefined а не h['a'] != null ? в си подобных языках используется имменно такая конструкция, особенно смущает !== вместо !=Написал автоматически. Просто по привычке проверяю на существование. По той же причине здесь строгое не равно. h['a'] != null будет также работать, как и в си. Link to comment Share on other sites More sharing options...
0 nim Posted July 3, 2007 Author Report Share Posted July 3, 2007 Хочу еще попросить потестить этот код в опере, фф, ие7<html><body><xml id="fdata"><?xml version="1.0" ?><folders> <folder>Caption1</folder> <folder>Caption2</folder> <folder>Caption3</folder></folders></xml><xml id="f_transform"><?xml version="1.0" ?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match = "/"> <xsl:for-each select="folders/folder"> <xsl:value-of /> </xsl:for-each> </xsl:template></xsl:stylesheet></xml><div id="xmlRes" /><script>var rr = fdata.transformNode(f_transform.XMLDocument);//elert (rr);xmlRes.innerText = rr;</script></body></html> Link to comment Share on other sites More sharing options...
0 nim Posted September 28, 2007 Author Report Share Posted September 28, 2007 Ну что-ж, тогда можно так:<script type='text/javascript'>var h = { 'a' : 'a', 'test' : 'test', 'ключ' : 'запись'}if (h['a']!==undefined){ alert('exist');}</script>var h = {'key' : 'record'};Вопрос, каким образом динамически добавлять новые элементы?неужели так? h.key1 = "record1"если так, то каким образом поступать если имя ключа изветно тоже только в динамике? Link to comment Share on other sites More sharing options...
Question
nim
Link to comment
Share on other sites
18 answers to this question
Recommended Posts