Есть переменная, содержащая текст (несколько строк с CR-ами в конце).
Как ее ввести в JavaScript-функцию в качестве параметра?
При "лобовом" подходе получается (например):
function("aaaaa
bbbb"), что никак не проявляется в теле функции.
--------
rgbeast & bur, спасибо за скорый отклик, но,кажется я не совсем внятно
изложил свою проблему. Уточняю - текстовая переменная - это то, что
формируется не мной, а присылается мне с сервера и задача как раз
заключается в том, чтобы с помощью некой фукции разобраться, где там
\r, где <br> ...., а для этого ее нужно в эту функцию как-то втащить.
Конкретно, переменная обозначена как {message} и, будучи поставленной
в любое (разумное, конечно) место HTML-кода, она выдает на монитор свое
текстовое содержимое. Вот 2 примера:
(1)
{message}=bgjkjhkl.lll |#56:
На экране вставка {message} в HTML-код показывает:
bgjkjhkl.lll |#56
Этот результат получается и в записи:
<SCRIPT language="javascript" type="text/javascript">
document.write(Txt2htm("{message}"));
(2)
На экране вставка {message} в HTML-код показывает:
jjjjjjjjjjjjjjjjjj
<br>jgggggggggggggggggg
а в записи:
<SCRIPT language="javascript" type="text/javascript">
document.write(Txt2htm("{message}")); - полный провал!
Знатоки, как ввести текст в функцию?
28 октября 2008, 19:58
Автор: yak2689
|
NO USERPIC
|
rgbeastС помощью спецсимвола \n:"aaaaa\nbbbb" |
28.10.2008, 20:10 Ответить |
|
NO USERPIC
|
yak2689Большое спасибо! - см. дополненный исходный текст. |
29.10.2008, 04:39 Ответить |
|
|
burЕсли удобно обозначать переносы строк в виде \n (как написал rgbeast) делайте так.Если же необходимо отдать именно многострочный исходный текст, то переносы строк нужно экранировать слешом: function a(text) { alert(text); } a("aaaaa\ bbbb"); Fastcoder.org — портал для JavaScrpt-программистов
|
28.10.2008, 22:29 Ответить |
|
NO USERPIC
|
yak2689Большое спасибо! - см. дополненный исходный текст. |
29.10.2008, 04:40 Ответить |
|
NO USERPIC
|
rgbeastВ таком случае не вставляйте ее внутрь Javascript. Вставьте {message} в отдельный <div>{message}</div>, а затем в JS вытащите содержимое этого div |
29.10.2008, 13:06 Ответить |
|
NO USERPIC
|
yak2689Спасибо! Ничего не получается и, кроме того, я не могу ставить {message} в к.л. блок безHIDDEN-условия (он начинает работать на экран, а мне нужно модернизированное содержание). Поэтому, вроде как только через форму, но полный обвал!!! Что только не пробовал. Вот последний тест: <div class="inputtext"> <form action="this" name="form1" method="post" target="_self"> <input name="text" type="hidden" value="StartVal" class="inputtext" /> <SCRIPT language="javascript" type="text/javascript"> <!-- alert("Control="+"{MESSAGE}"); alert(this.document.form1.text.value); //--> </script> </form> </div> Первый alert реагирует только на строки, а 2-ой показывает только ="StartVal"! Форма в данном контексте не работает ... всего не рассказать. Меня смущает одно: переменная, примитивно-удобная в HTML-коде как-то неочевидно д.б. использована с JS. Еще раз спасибо, извините за беспокойство. |
29.10.2008, 17:05 Ответить |
|
|
burЯ так понял, суть задачи в том, чтобы яваскриптом ухватить многострочный HTML-код, который отдается переменной шаблонизатора {MESSAGE}. Делаем так:<!-- загоняем html-код в отдельный контейнер DIV --> <div id="divId">{MESSAGE}</div> <script type="text/javascript"> // Обращаемся к искомому HTML-коду с помощью свойства innerHTML alert( document.getElementById('divId').innerHTML ); // Должно сработать </script> А что, на "народе" появился встроенный шаблонизатор и возможность работы со структурами данных? Fastcoder.org — портал для JavaScrpt-программистов
|
29.10.2008, 17:40 Ответить |
|
NO USERPIC
|
yak2689Правильно, но "ухватить многострочный HTML-код, который отдается переменной шаблонизатора {MESSAGE}"БЕЗ ОТОБРАЖЕНИЯ ЕГО НА ЭКРАНЕ, что делает строка <div id="divId">{MESSAGE}</div>. Спасибо за участие и беспокойство. P.S. О "народе" - как я (чайник в этих вопросах) понимаю, определенный инструментарий для сайтостроения они предоставляют ( http://narod.yandex.ru/help/00/ gb), но специализированной ПЕРЛ-овой базы данных у "народа" нет. |
29.10.2008, 18:41 Ответить |
|
|
burМожно это ДИВ скрыть стилями, тогда его не будет видно на экране. Вот так:<div id="divId" style="display:none;">{MESSAGE}</div> Сойдет? Fastcoder.org — портал для JavaScrpt-программистов
|
29.10.2008, 18:42 Ответить |
|
NO USERPIC
|
yak2689Спасибо! - буду пробовать!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Первое УРА! Текст берет (с причиндалами типа шрифта, цвета..., но обрезать, думаю, можно будет), но есть серьезное НО - хватает только 1-ю {MESSAGE}, а следующие игнорирует, оставаясь с первым текстом (alert("Control="+"{MESSAGE}"); меняет содержание при каждом новом {MESSAGE}). Существует механизм для выталкивания Предыущего Последующим? Спасибо - есть предмет для конкретной работы! 29.10.2008, 20:13 |
29.10.2008, 18:55 Ответить |
|
NO USERPIC
|
rgbeastНе понял что имеется в виду под предыдущим и последующими MESSAGE |
30.10.2008, 00:12 Ответить |
|
NO USERPIC
|
yak2689Я Вам вопрос - это {MESSAGE} №1 (предыдущий)Вы мне ответ - это {MESSAGE} №2 (последующий) .... у нас уже "куча" {MESSAGE}-ов! В каждом {MESSAGE} м.б. несколько строк и м.б. вставки типа |#nn. Каждый {MESSAGE} надо прочитать и заменить вставки текстом типа <img src="..........SMnn.gif />. {MESSAGE}-ы поступают от сервера единым потоком. |
30.10.2008, 08:57 Ответить |
|
NO USERPIC
|
rgbeastА куда эти месседжи поступают? Я так понимаю речь идет об HTML. Как выглядит HTML? |
30.10.2008, 10:21 Ответить |
|
NO USERPIC
|
yak2689Через HTML на монитор/дисплей,конечно. См. ( http://yak2689.narod.ru/ ). |
30.10.2008, 12:49 Ответить |
|
NO USERPIC
|
rgbeastДа уж, сложную Вы выбрали задачу - на народе запрограммить сайт. Что мешает каждый алерт заменить на div, а общим JS все вывести? Получить массив элементов div можно с помощью функции getElementsByTagName() |
30.10.2008, 13:01 Ответить |
|
NO USERPIC
|
yak26891. ОДИН алерт выводит ВСЕ сообщения (однострочные), Див только ОДНО(любое)!2. Количество сообщений не определено и м.б. очень большим. 3. Див, кроме полезной информации содержит "мусор". Вопрос: как правильно написать скрипт-заголовок для яыка "С"? М.б. {MESSAGE} можно будет передать в знаковый массив. |
30.10.2008, 13:51 Ответить |
|
NO USERPIC
|
rgbeastУсложнение очевидно на начальном этапе. Вы пытаетесь заставить JS делать то, для чего должны быть серверные скрипты. Что требуется написать на С? |
30.10.2008, 14:03 Ответить |
|
NO USERPIC
|
yak2689В "жизни" вместо алертов будет работать ф. Txt2hdl({MESSAGE}) - вот она и будет на Си. |
30.10.2008, 14:09 Ответить |
|
NO USERPIC
|
rgbeastСи выполняется на стороне сервера. В этом случае как это связано с Javascript, который работает на стороне клиента? |
30.10.2008, 14:13 Ответить |
|
NO USERPIC
|
yak2689Cпасибо - это для меня новость. |
30.10.2008, 15:15 Ответить |
|
NO USERPIC
|
rgbeastМастер Фу и консультант по методологии Когда Мастер Фу и его ученик Ньюби посещали святые места, по вечерам Мастер Фу имел обыкновение выступать перед неофитами Unix тех городов и сел, где они останавливались на ночлег. Однажды среди тех, кто собрался его послушать, оказался консультант по методологии. "Если при доводке вы не профилируете регулярно ваш код в поисках узких мест, то вы уподобляетесь рыбаку, которые закидывает сеть в озеро, в котором нет рыбы," - сказал Мастер Фу. "Не верно ли тогда и то, - сказал консультант по методологии, - что если вы не замеряете постоянно вашу производительность при управлении ресурсами, то вы уподобляетесь рыбаку, которые закидывает сеть в озеров, в котором нет рыбы". "Однажды я встретил рыбака, котоырй только что уронил сеть в озеро, по которому плыла его лодка, - сказал Мастер фу. - Он долго шарил по дну лодки, пытаясь найти ее". "Но если он уронил свою сеть в озеро, - сказал консультант по методологии, - то почему он искал ее в лодке?" "Потому, что он не умел плавать", - ответил Мастер Фу. Услышав это, консультант достиг просветления. |
30.10.2008, 15:21 Ответить |
|
NO USERPIC
|
yak2689bur, Спасибо!ВАШИ подсказки полностью приняты! Конкретно - работает код: <!--------------------------------------------------------------------> <div id="{JSDATE}" style="display:none;">"{MESSAGE}" </div> <SCRIPT language="javascript" type="text/javascript"> <!-- WrDo(Txt2htm(ExtractText(document.getElementById("{JSDATE}").innerHTML))); //--> </SCRIPT> <!--------------------------------------------------------------------> Пока все работает отлично! Еще раз - Большое Вам СПАСИБО и замечательной жизни! |
01.11.2008, 09:43 Ответить |
|
|
burУфф, рад что у вас наконец всё заработало :-)Fastcoder.org — портал для JavaScrpt-программистов
|
05.11.2008, 11:47 Ответить |
© 2007—2012 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.