Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Dimon-P
0 / 0 / 0
Регистрация: 29.01.2008
Сообщений: 11
1

SSI внутри Javasript, такое возможно?

29.01.2008, 13:58. Просмотров 2615. Ответов 33
Метки нет (Все метки)

Народ, возможна ли такая конструкция:

Код
<script language='javascript'>
<!--
function init() {
 str = '<!--#include virtual='/news.txt' -->';
 alert(str);
}
-->
</script>
или же это бред?

Если описывать проблему вообще, то мне нужно на серваке (где нет cgi и ASP'ов) закачать в яваскриптовскую переменную текст из внешнего файла, а потом уже работать с этой переменной...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2008, 13:58
Ответы с готовыми решениями:

Как такое возможно реализовать???
Доброго времени суток! С# я начал изучать недавно и вот появилась такая задача… Нужно сделать...

Совпадение UUID - как такое возможно?
Человек купил программу, я смотрю на его UUID, и он совпадает с моим!! ManagementObjectSearcher...

Самоинициализация новой ASP сессии, такое возможно ?
Ситуация такая: на запрос извне (не из броузера) нужно отдать какой-нибудь контент, т.е. как-бы...

Возможно ли написать такое приложение на MVC ?
Есть задание, написать веб-приложение, которое выполняет некие действия с изображением. То есть...

Возможно ли такое
Хочу задать вопрос-возможно ли и как сделать вот это-разместить на сайте 4 блока новостей. Т.е. 1...

33
sunex
2 / 2 / 0
Регистрация: 06.12.2007
Сообщений: 114
29.01.2008, 14:41 2
Нет, такое не пройдет. Директива #include virtual обрабатывается сервером, а JavaScript отрабатывает на уже сформированной сервером странице.

Средствами JavaScript (на клиенте) прочитать файл на сервере не получиться.
0
Dimon-P
0 / 0 / 0
Регистрация: 29.01.2008
Сообщений: 11
29.01.2008, 15:41  [ТС] 3
я вот подумал, что ведь с VB-скриптами такое проходит. Т.е. в тело яваскрипта вставляем директиву VBскрипта (типа <%=str%>), и на стороне клиента мы уже видим яваскрипт со вставленным значением переменной (str).
SSI же отрабатывает вставку, но как-то криво.
Вот что получается при использовании вышеупомянутого примера:
(в файле содержится текст '20.11.2001')

Код
<script language='javascript'>
20.11.2001';
 alert(str);
}
-->
</script>
т.е. съедаются неск. строк яваскрипта...
0
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
29.01.2008, 16:01 4
по моему ты путаешь клиентские и серверные скрипты
0
Dimon-P
0 / 0 / 0
Регистрация: 29.01.2008
Сообщений: 11
29.01.2008, 16:13  [ТС] 5
да нет - не путаю.
яваскрипт - клиентский, SSI и ASP сто пудов серверные...
поэтому, если мы любую точку яваскрипта вставим ASP типа:
Код
<%A=123%>
<script language='javascript'>
<!--
function init() {
 str = '<%=A%>';
 alert(str);
}
-->
</script>
то у клиента получим:

Код
<script language='javascript'>
<!--
function init() {
 str = '123';
 alert(str);
}
-->
</script>
почему же SSI срабатывает (пример приведен в предыдущ. сообщении), но при этом глючит - съедает некоторые строки из яваскрипта?
0
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
29.01.2008, 16:17 6
вот это как раз неверно.

запись <%%>
аналогична записи <script runat=server></script>

у тебя получается вложенные блоки <script></script>
а это недопустимо.

Если хочешь передать на клиента переменную делай так

Response.Write '<script lang=JavaScript>var a=' & a & ';</script>'
0
Sergik
29.01.2008, 17:03 7
to parashin: как раз у тебя неверно
Response.Write '<script lang=JavaScript>var a=' & a & ';</script>'
так писать нельзя
to Dimon: так подключать файлы можно, проверь, чтобы в подключаемом файле не было кавычек и переносов строк
Dimon-P
0 / 0 / 0
Регистрация: 29.01.2008
Сообщений: 11
29.01.2008, 17:58  [ТС] 8
Да, дело в том, что SSI то отрабатывает, но криво.
Вот упростил подключаемый файл до трех символов '123'.
Исходник приведен выше.
Получаю на клиенте:

Код
<script language='javascript'>
123';
 alert(str);
}
-->
</script>
начало строки с присвоением пропало... но вставка произошла
0
Sergik
29.01.2008, 18:05 9
наврядли такое может быть, у меня все работает, пришли исходники этих файлов с их именами
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
30.01.2008, 08:39 10
>to parashin: как раз у тебя неверно
>Response.Write '<script lang=JavaScript>var a=' & a & ';</script>'
>так писать нельзя

Это как это нельзя. Очень даже можно. У клиента будет в документе.

<script lang=Javascript>
var a=3;
</script>

а делать вложенные скриптовые блоки это по крайней мере дурной тон программирования.
0
Sergik
30.01.2008, 10:05 11
а у тебя они не вложенные?
сам же написал:
>>>запись <%%>
>>>аналогична записи <script runat=server></script>
и предлагаешь писать:
<%Response.Write '<script lang=JavaScript>var a=' & a & ';</script>'%>
Дурной тон программирования, однако
Sergik
30.01.2008, 10:07 12
Кстати, рассказать разницу между
<%..%>
и
<script runat=server>..</script>
?
t1k
3 / 3 / 5
Регистрация: 10.05.2007
Сообщений: 1,617
30.01.2008, 10:50 13
Расскажи, я давно интересовался.
Например я знаю что Option Explicit не работает в случае runat=server
0
Sergik
30.01.2008, 11:12 14
отличие во времени исполнения, два примера:
Код
html до
<script runat=server language='JScript'>
Response.Write('html в середине')
</script>
html после
этот пример выведет:
Код
html в серединеhtml до html после
а вот этот пример
Код
html до
<%Response.Write('html в середине')%>
html после
выведет
Код
html до html в середине html после
соответственно переменные, определяемые в <%%> никогда не будут видны в <script..> и другие проблемы, поэтому советую никогда не смешивать <script..> и <%%>, а еще лучше пользоваться только <%%>
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
30.01.2008, 11:17 15
>а у тебя они не вложенные?
>сам же написал:
>>>>запись <%%>
>>>>аналогична записи <script runat=server></script>
>и предлагаешь писать:
><%Response.Write '<script lang=JavaScript>var a=' & a & ';</script>'%
Дурной тон программирования, однако

У меня то они как раз и не вложенные. У меня серверный скрипт который выводит СТРОКУ. И не важно что эта строка содержит тэги Script-а.
Строка она и есть строка.

а если писать так

<script lang=Javascript>
<%=var%>
</script>

то это просто неверно.

Попробуй введи этот текст в InterDev-е. Он <%%> не подсветит желтым. потому что блоки скриптов любых (серверных или клиентских) не могут быть вложенными. И в InterDev-е все это явно видно
0
Sergik
30.01.2008, 11:23 16
ну блин, как же это я в InterDev-ве то не посмотрел, теперь придется все свои скрипты переделывать, и в InterDev тестировать, а то они неправильные.
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
30.01.2008, 11:29 17
Хотя в жизни все работает. Странно... Извините был не прав.

А насчет <script> </script> и <%%>
там еще зависит от атрибута lang тэга скрипт

если будет
так

<script runat=server lang=VBScript>Response.Wrire ('text2')</script>
<%Response.Write ('text3')%>
<script runat=server lang=JavaScript>Response.Wrire ('text1')</script>

то на выходе получим

text1
text2
text3

если я чего то не путаю
0
t1k
3 / 3 / 5
Регистрация: 10.05.2007
Сообщений: 1,617
30.01.2008, 11:32 18
Interdev не единственная среда разработки ASP. Например в Far+Colorer внутри <script language='Javascript'></script>, <%=%> прекрасно подсвечиваются.

Вообще прием 'ASP внутри клиентского скрипта' часто используется, и никакого дурного тона я здесь не вижу.
0
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
30.01.2008, 11:32 19
>ну блин, как же это я в InterDev-ве то не посмотрел, теперь придется >все свои скрипты переделывать, и в InterDev тестировать, а то они >неправильные.

ну все опустил совсем
0
parashin
0 / 0 / 0
Регистрация: 21.06.2007
Сообщений: 654
30.01.2008, 11:34 20
да все правильно. Я тут и в MSDN статью по этому поводу отрыл.
0
30.01.2008, 11:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2008, 11:34

Возможно ли такое?
Недавно сжег мат.плату, поставили новую, все остальные части остались целыми. Теперь при установке...

Возможно ли такое
...и туда ли я вообще написал)) Всем привет. Неделю усиленно лопачу форум и в тырнетах, голова...

Возможно ли такое?
Пусть некая фирма выпускает компы и операционные системы, системы не идут на чужих компах, на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru