Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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", то перестает работать. Любители псевдостандартов идут лесом.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.008 c
15-1203880153
Аркадий_Т
2008-02-24 22:09
2008.04.06
24 февраля (т.е завтра) рабочий день?


2-1204887929
Прохожий 001
2008-03-07 14:05
2008.04.06
Три окна и GW_HWNDPREV


2-1204969060
Galiaf
2008-03-08 12:37
2008.04.06
Проблема с BlockRead и динамическим массивом


2-1205010810
art36
2008-03-09 00:13
2008.04.06
Получить время из интернета


2-1205081463
NaRuTo
2008-03-09 19:51
2008.04.06
WM_COPYDATA





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский