Форум: "Прочее";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];
ВнизПомогите с JavaScript :) Найти похожие ветки
← →
Проскользнул мимо... (2008-02-22 20:50) [0]Всем доброго времени суток!
Пишу скриптик для замещения html-кода части страницы в зависимости от определённых условий :)
Пишу:
var abc="<img id="imgmenu" src="./style/down.gif" width="23" height="19" border="0" onmouseover="javascript: ShowHoverImage(this);" onclick="javascript:HideShow("tablemenu", "imgmenu")" onmouseout="javascript: ShowHoverImage(this);">";
Точка преткновения в этом месте: ("tablemenu", "imgmenu")
Требуется использовать кавычки-апострофы " и ", но ни в коем случае НЕ опускать их и НЕ заменять на " и "!
Всё прекрасно работает, если этот код просто вставить в код странички. Но его нужно занести в переменную.
В Delphi всё просто: специальные символы надо удваивать, то есть вместо " написать "" (2 символа ", 2 апострофа). Пишу: (""tablemenu"", ""imgmenu"")
Что самое интересное - НЕ РАБОТАЕТ. Ни с 1 апострофом, ни с 2-мя, ни с кавычками, ни вообще просто без апострофов и кавычек.
Что я делаю не так? Уже 20 минут мучаюсь... :))) Помогите, плз.
← →
b z (2008-02-22 20:58) [1]Экранировать - \"
← →
Palladin © (2008-02-22 21:01) [2]честное слово про правила формирования строки апострофами в JScript (JavaScript) рассказывается в любом справочнике... но (!) не путать правила формирования строки двойными кавычками... это тоже в справочниках рассказывается...
← →
Проскользнул мимо... (2008-02-22 21:02) [3]
> b z (22.02.08 20:58) [1]
> Экранировать - \"
Огромное спасибо! Заработало!
Точно же, в C++ так и делается "\+символ"
Век живи - век учись :)
PS: а как написать \ ? :)
← →
Palladin © (2008-02-22 21:04) [4]\\
еслив не шутка
← →
Проскользнул мимо... (2008-02-22 21:05) [5]
> но (!) не путать правила формирования строки двойными кавычками.
> .. это тоже в справочниках рассказывается...
Я знаю про то, что тут использовать " " неуместно. Но я уже от безысходности подставлял все варианты...
А справочники я не читал, потому что JS вообще использую крайне редко и основы знаю. К оому же не видел ни одного нормального справочника по JS в электронном виде. Может, дадите ссылку? В google и yandex не отсылать... Я там был.
← →
Проскользнул мимо... (2008-02-22 21:06) [6]
> еслив не шутка
Нет, не шутка
← →
Palladin © (2008-02-22 21:06) [7]
> Проскользнул мимо... (22.02.08 21:05) [5]
не могу :) у меня только сюда доступ по http
сходи на www.xpoint.ru, если он еще существует...
← →
b z (2008-02-22 21:08) [8]вот недавно наткнулся, правда еще особо сам не видел :)
http://www.webmaster.ee/javascript/js.html
← →
homm © (2008-02-22 21:10) [9]> [0] Проскользнул мимо... (22.02.08 20:50)
> onclick="javascript:HideShow("tablemenu", "imgmenu")"
Это что за говно?
← →
Palladin © (2008-02-22 21:13) [10]эти экскрименты объясняют, что последующая цепочка комманд имеет синтаксиси javascript...
← →
Проскользнул мимо... (2008-02-22 21:23) [11]
> Это что за говно?
всё нормально. Все уважающие себя разработчики так пишут, включая Microsoft, Adobe и других...
← →
homm © (2008-02-22 21:46) [12]> [10] Palladin © (22.02.08 21:13)
> эти экскрименты объясняют, что последующая цепочка комманд
> имеет синтаксиси javascript...
Дело втом, что уже сами эти экскременты являются частью ява-скрипта, потому ничего показывать не могут.
← →
homm © (2008-02-22 21:47) [13]> [11] Проскользнул мимо... (22.02.08 21:23)
> Все уважающие себя разработчики так пишут, включая Microsoft,
> Adobe и других...
Пример в студию, страницу в которой можно это утверждение посмотреть.
← →
Проскользнул мимо... (2008-02-22 21:50) [14]
> Пример в студию, страницу в которой можно это утверждение
> посмотреть.
Будете смеяться? :)))
Откройте исходный код этой странички :)))
<A href="JavaScript: if(document.all) window.external.AddFavorite(window.document.location,window.document.title)">
← →
homm © (2008-02-22 21:54) [15]> [14] Проскользнул мимо... (22.02.08 21:50)
> Откройте исходный код этой странички :)))
Скажи мне дорогой друг, знаешь ли ты что есть теги и за что отвечают кие свойства, хотя-бы приблизительно? Смеятся не буду, плакать хочется.
← →
homm © (2008-02-22 21:55) [16]> [0] Проскользнул мимо... (22.02.08 20:50)
> <img id="imgmenu" src="./style/down.gif" width="23" height="19"
> border="0" onmouseover="javascript: ShowHoverImage(this)
> ;" onclick="javascript:HideShow("tablemenu", "imgmenu")"
> onmouseout="javascript: ShowHoverImage(this);">
> <A href="JavaScript: if(document.all) window.external.AddFavorite(window.
> document.location,window.document.title)">
Найди одно, он очень важное отличие.
← →
Проскользнул мимо... (2008-02-22 22:00) [17]
> Найди одно, он очень важное отличие.
Ах так?!
UpgradeAdvisor - Советник по переходу на Windows Vista 1.0
После установки и запуска, выведенный результат можно сохранитьь в HTML файл, в котором присутствует подобная строчка:
<META http-equiv=content-type content="text/html; charset=UTF-8"><LINK href="UpgradeAdvisorTaskList_Files\images\main.css" type=text/css rel=stylesheet><LINK media=print href="UpgradeAdvisorTaskList_Files\images\print.css" type=text/css rel=stylesheet>
<SCRIPT src="UpgradeAdvisorTaskList_Files\images\script.js" type=text/javascript></SCRIPT>
</HEAD>
<BODY class=scrollingBody oncontextmenu="return false;" onload=document.body.focus();>
<DIV id=SaveContainer>
<DIV id=hardwareDetailsDiv style="DISPLAY: block">
<DIV class=detailSectionHeaderSavedReport>Подробные сведения о системе:</DIV>
<DIV class=detailTableSectionDiv>
<DIV class=detailOpenCloseImageDiv><IMG id=imgblockingDiv onmouseover="javascript: ShowHoverImage(this);" onclick="javascript:HideShow("tableblockingDiv", "imgblockingDiv")" onmouseout="javascript: ShowHoverImage(this);" src="UpgradeAdvisorTaskList_Files\images\upArrow.gif"></DIV>
<DIV class=detailSummaryTextDiv><SPAN class=detailSummaryHeaderTextDiv onclick="javascript:HideShow("tableblockingDiv", "imgblockingDiv")">Просмотрите список системных проблем в Windows Vista</SPAN><BR>Ознакомьтесь с перечисленными в следующей таблице проблемами с оборудованием, которые надо устранить, чтобы обеспечить максимальную производительность Windows Vista. </DIV>
<TABLE class=tableblockingDiv id=tableblockingDiv style="DISPLAY: block" cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=detailTableHeaderLeftEnd>Тип проблемы</TD>
<TD class=detailTableMidHeader>Категория</TD>
<TD class=detailTableMidHeader>Требуется действие</TD>
<TD class=detailTableHeaderRightEnd>Объяснение</TD></TR>
<TR>
На основе этого и делаю )
← →
homm © (2008-02-22 22:01) [18]> [17] Проскользнул мимо... (22.02.08 22:00)
> На основе этого и делаю )
Неудачный у тебя пример.
← →
homm © (2008-02-22 22:01) [19]Пример для подрожания, имеется ввиду.
← →
Проскользнул мимо... (2008-02-22 22:05) [20]
> Неудачный у тебя пример.
Ах вы так? А мы вот так! (С)
Пример 2: IE7, строчка из текста созданной новой вкладки
<body onLoad="javascript:setTabInfo("tabInfoBlockID");" class="tabInfo">
← →
homm © (2008-02-22 22:13) [21]> [20] Проскользнул мимо... (22.02.08 22:05)
Ты приведи строчку в документации, где сказано что такая конструкция хотябы допустима. То, что в ИЕ полно извращений, я и без тебя знаю.
← →
homm © (2008-02-22 22:36) [22]Итак, проведем небольшое исследование:
<a href="#" onclick="abrakadabra:s="OK, it\"s done"; alert(s); return false;">click me!</a>
Все 4 доступные мне браузера единогласно признали что этот код на ДжаваСкрипте, а не на абракадабре. Так что вопрос, что это за говно, и зачем это писать, если не понимаешь что это такое остается в силе.
Конструкции вида [14] появились от незнания почему нормальные браузеры переходят по href если он задан, но отображают ссылку как текст если href не задан. Все просто: OnClick — это функция, и от ее результата браузер (ие, как обычно не браузер) решает переходить по href или нет.
пожтому верная конструкция, выгядящая как ссылка, но исполняющая свак од выглядит так:<a href="#" onclick="CODE; return false;">click me!</a>
Причем желательно, чтобы за место href="#" был осмысленный адрес, дублирующий функционал явакода.
2Palladin
Ты в этой ветке уже не так агресивен, но не смотря на это снова облажался…
← →
homm © (2008-02-22 22:37) [23]> [22] homm © (22.02.08 22:36)
> но исполняющая свак од
ява код
← →
Проскользнул мимо... (2008-02-22 22:47) [24]http://www.webdeveloper.com/forum/archive/index.php/t-77.html
← →
homm © (2008-02-22 22:51) [25]> [24] Проскользнул мимо... (22.02.08 22:47)
42?
← →
Проскользнул мимо... (2008-02-22 22:53) [26]
> 42?
Что сорок два? Не понял
← →
homm © (2008-02-22 22:54) [27]> [26] Проскользнул мимо... (22.02.08 22:53)
> Не понял
Я тоже. В моем сообщении не больше пользы чем в твоем но и не меньше. Ты ссылкой т что сказать хотел?
← →
palva © (2008-02-22 23:08) [28]homm © (22.02.08 22:36) [22]
> Все 4 доступные мне браузера единогласно признали что этот код на
> ДжаваСкрипте, а не на абракадабре. Так что вопрос, что это за говно, и зачем
> это писать, если не понимаешь что это такое остается в силе.
Это потому, что у вас на компьютере не зарегистрирован скриптовый движок языка abracadabra. В противном случае IE выполнил бы скрипт на абракадабре. Так что ответ на ваш вопрос остается в силе. Это указание на скриптовый язык. Если браузер не понимает этого указания, то он интерпретирует скрипт как JavaScript.
← →
homm © (2008-02-23 00:05) [29]> [28] palva © (22.02.08 23:08)
> В противном случае IE выполнил бы скрипт на абракадабре.
В таком случае такое поведение как минимум настораживает. Какого черта ИЕ пытается выполнить код как JS (ведь это 100%-но приведет к ошибке), если он определил и точно уверен что он на абракадабре, просто у него нет подходящего скриптового движка?
По большому счету меня мало волнует что бы выполнил эксплорер, как не волнует что бы выполнил браузер Васи Пупкина. По стандарту нет подобной возможности указания языка:
http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.3
← →
homm © (2008-02-23 00:10) [30]Кстати, указание «javascript:» в тексте ссылки не является расширением стандарта, что-то о чем-то говоряшем брузеру. Это всего лишь указание протокола, которым следует обрабатывать браузер следующий далее код. И даже если в стандарте нет указания, что должен быть протокол «javascript:» и адрес по нему должен выполнятся, такая запись в ссылке все равно не является ущербной с точки зрения вормата, браузер в праве реализовывать любые протоколы или открвать их внешними модулями при отсутствии реализации в нем самом.
← →
palva © (2008-02-23 00:38) [31]> Какого черта ИЕ пытается выполнить код как JS
Ей богу, не знаю. И FireFox тоже так поступает. Наверно, и другие браузеры.
В данном случае мне проще принимать мир таким, каков он есть, а не воевать с ним. Я знаю, что нужно написать, чтобы работало так, как я задумал. Этого мне достаточно.
← →
homm © (2008-02-23 00:46) [32]> [31] palva © (23.02.08 00:38)
> Я знаю, что нужно написать, чтобы работало так, как я задумал.
Ну как это? Написали вы на абракадабре свое заклинание, написали «указание языка, на котором написан скрипт», а на клиенте он пвтается выполнится как ява… Явное расхождение. Не лучше ли пользоваться разработанной для разноязычних скриптов конструкцией <script></script> ?
← →
palva © (2008-02-23 09:51) [33]
> Не лучше ли пользоваться разработанной для разноязычних
> скриптов конструкцией <script></script> ?
>
Иногда, конечно, лучше. Да только в нем указание языка abracadabra приведет к тем же результатам. Я правда не проверял...
← →
Мазут Береговой (2008-02-23 10:39) [34]Чего завелись?
Не знаю как в других бровзерах, а в IE можно было (в предыдущих версиях, по-крайней мере) устанавливать скрипт клиента по умолчанию или vbscript или javascript. Поскольку ie понимает оба скрипта и что бы не было проблем если ie настроен не на тот язык на котором написан активный скрипт клиента для этого и используется вот такая запись "onclick="javascript:HideShow" - явное указание языка на котором следует стэйтмент... А может быть написано и так "onclick="vbscript:HideShow"... Так что никакой это не "эксримент"... учите матчасть homm - пригодиться...
← →
homm © (2008-02-23 11:29) [35]> [34] Мазут Береговой (23.02.08 10:39)
> вот такая запись "onclick="javascript:HideShow"
Именно вот такая запись не несет в себе никакой силы и ни на что не указывет, потому что это отсебятина, которую к тому же еще пришлось учитавать разработчикам вменяемых браузеров.
> [34] Мазут Береговой (23.02.08 10:39)
> учите матчасть homm - пригодиться...
Я руковобствуюсь матчастью, в отличие от Вас.
← →
palva © (2008-02-23 11:54) [36]
> Именно вот такая запись не несет в себе никакой силы и ни на что не указывет
Какое-то все-таки взаимное непонимание. Разве здесь уже не выяснили, что данная запись указывает на то, что ONCLICK написан на JavaScript?
← →
Anatoly Podgoretsky © (2008-02-23 12:44) [37]> Мазут Береговой (23.02.2008 10:39:34) [34]
Это не опознаный стейтмент, игнорируется. Мало ли кто какие абракадабра-теги напишет и что на них реагировать, просто в корзину и идем дальше и по стандарту, ожидается имя скрипта выполняем, все непонятое игнорируем.
← →
Проскользнул мимо... (2008-02-23 17:25) [38]Вы как хотите. а я продолжал. продолжаю и буду продолжать писать
="javascript:
Потому что уверен: это не просто так
И всё-таки это указание браузеру: на каком языке выполнять скрипт
← →
b z (2008-02-23 17:31) [39]
> И всё-таки это указание браузеру: на каком языке выполнять
> скрипт
Нет. :)
← →
Kerk © (2008-02-23 17:41) [40]
onclick="perlscript:$window->document->MyForm->Text1->{"value"} = "Hello, world!";"
Если убрать "perlscript", то перестает работать. Любители псевдостандартов идут лесом.
← →
homm © (2008-02-23 18:37) [41]> [36] palva © (23.02.08 11:54)
> Разве здесь уже не выяснили, что данная запись указывает
> на то, что ONCLICK написан на JavaScript?
Нет. Для того, что бы это понять достаточно прочитать то, что я писал ранее.
> [37] Anatoly Podgoretsky © (23.02.08 12:44)
> Мало ли кто какие абракадабра-теги напишет и что на них
> реагировать, просто в корзину и идем дальше и по стандарту,
> ожидается имя скрипта выполняем, все непонятое игнорируем.
О чем и речь, что непонятные стейтменты не игнорируются, а предполагаются что это javascript, что говорит о том, что это никакой не стейтмент. Впрочем я это задолбался уже твердить.
> [38] Проскользнул мимо... (23.02.08 17:25)
> Потому что уверен:
В том что ты беремен. Мне нечего больше возвразить на твою уверенность в собственной глупости и нежелании читать.
> [40] Kerk © (23.02.08 17:41)
> Если убрать "perlscript", то перестает работать.
Что совершенно не значит, что если не убирать, оно будет работать. Как я уже говорил (о боже!) если браузер не знает никакого "perlscript", он предполагает что это javascript (ну или язык, выставленный для данного документа по умолчанию), откуда делается вполне однозначный вывод: ничего кроме кода на языке по умолчанию писать нельзя, соответственно и указывать на каком языке — это ненужное гуано, которого даже в стандарте нет.
← →
Kerk © (2008-02-23 18:41) [42]
> homm © (23.02.08 18:37) [41]
> > [40] Kerk © (23.02.08 17:41)
> > Если убрать "perlscript", то перестает работать.
>
> Что совершенно не значит, что если не убирать, оно будет
> работать.
Но работает. Остальное твое бла-бла-бла можно смело проигнорировать.
← →
homm © (2008-02-23 18:47) [43]> [42] Kerk © (23.02.08 18:41)
> Но работает.
У тебя.
← →
Kerk © (2008-02-23 18:50) [44]
> homm © (23.02.08 18:47) [43]
> > [42] Kerk © (23.02.08 18:41)
> > Но работает.
>
> У тебя.
Ну да. Оно работает у всех, кому это нужно.
← →
homm © (2008-02-23 18:59) [45]> [44] Kerk © (23.02.08 18:50)
Подумать головой всегда сложне, чем сказать «оно и так работает».
← →
palva © (2008-02-23 19:28) [46]> Подумать головой всегда сложне, чем сказать «оно и так работает».
Если работает, то лучше не думать. Слишком много такого, что не работает и требует раздумий - на всё головы не хватает.
← →
homm © (2008-02-23 19:43) [47]> [46] palva © (23.02.08 19:28)
> Если работает, то лучше не думать. Слишком много такого,
> что не работает и требует раздумий - на всё головы не хватает.
Многие не думали… потом пришла виста и всем, кто не думал, пришлось подумать два раза. Если лень думать, я подумал за вас: писать «javascript:» и использовать в обработчиках код кроме как на языке по умолчанию для документа — вредно. Если найцдутся люди, способные думать лучше меня, с удовольствием выслушаю их мнение и поменяю точку зрения, ели я не прав. Пока же все ответы аппонентов сводятся к [42].
← →
Kerk © (2008-02-23 20:25) [48]Пока ты не объяснишь, чем это вредно, разговор не имеет смысла. Пока ты онанируешь на стандарты, мой заказчик доволен и деньги я уже проел.
← →
homm © (2008-02-23 20:35) [49]> Пока ты не объяснишь, чем это вредно, разговор не имеет смысла.
Для этого достаточно не быть дебилом, и прочитать «бла-бла-бла», которое ты смело проигнарировал.
← →
homm © (2008-02-23 20:35) [50]Впрочем возможно что тебе все же будет не достаточно прочитать «бла-бла-бла», которое ты смело проигнарировал, ты же дебил.
← →
palva © (2008-02-23 20:44) [51]Ну на этом ветку и закроют.
← →
Kerk © (2008-02-23 21:03) [52]Мда, я знал, что ты неадекват, но не настолько же...
← →
Kerk © (2008-02-23 21:18) [53]Ну и пока ветку не закрыли, специально для любителей всех и вся поправлять небольшая цитатка
Раз уж я заговорил об инглише, то поучительна будет история с нашим программером POS-терминалов, который работал одно время в Лондоне, когда он был женат на англичанке. Потом он с ней развелся из-за того, что она курила траву и пила слишком много бухла. После того как развелся, приехал обратно в Москву. Так вот, этот парень говорит, что когда он был в Лондоне, его все прекрасно понимали и никто ничего не спрашивал. Программером он проработал довольно долгое время. А когда вернулся на Родину, то каждый второй начал учить его как правильно говорить по-английски, а это ты говоришь не так, а это надо вот так. Бывают такие люди, лишь бы поучить кого.
И вот я задумался, а зачем кому-то требуется кого-то поучить? Откуда вообще растут корни? И вопрос оказался настолько интересным, что я даже боюсь, что не смогу раскрыть саму суть. Я как собака, понимаю, а сказать не могу :) Но попытаюсь объяснить.
Я считаю, что в основе любого общения с людьми должно лежать такое правило как "честность с самим собой". Если это так, то это избавляет вас от многих проблем и комплексов, таких как неуверенность в общении (с противоположным полом - как вариант), постоянная неудача в делах (синдром лузера), несчастная любовь и др. Если вы поймете в чем фишка, то сами сможете дополнить этот список и избегать этих проблем.
http://romanpushkin.blogspot.com/2008/02/hey-ro.html
← →
Мазут Береговой (2008-02-24 01:00) [54]
> Kerk © (23.02.08 21:18) [53]
:-))) Отличный ответ Чемберлену!... :-)))
← →
b z (2008-02-24 13:33) [55]
> Я как собака, понимаю, а сказать не могу
Это всегда так бывает, когда по другому быть не может. (c) :)
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];
Память: 0.61 MB
Время: 0.006 c