Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не видит методов / 7 сообщений из 7, страница 1 из 1
19.08.2008, 14:30
    #35494982
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не видит методов
Происходят следующие ситуации.
При определенном расположении функций они не видны из html кода.
Например если есть две области
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<html:xhtml/>
<script type="text/javascript">
 var x1;
 function a(val) {}
</script>
 
<script type="text/javascript">
  var x2; 
function b(val) {}
</script>
<html:form onsubmit...>
<table><tr><td> 
<div style="text-align: center;">
<input type="button"  onclick="b('sometext');"/></div>
</td></tr></table>
</html:form>




то вызов onclick="b('sometext') возвращает ошибку что такой функции нет.
И не видны для функции b(val) переменная var x1.
Также бывает что при добавлении какойто функции после например a() эта функция a() перестает быть видна.
Есть какие-то правила расположения этих функций на странице, можно ли делать несколько областей? Или это только методом тыка можно выяснить чего эта функция невидна.
Такое впечатление что Javascript сырой язык.
Есть какие-то правила
...
Рейтинг: 0 / 0
19.08.2008, 15:40
    #35495267
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не видит методов
osonТакое впечатление что Javascript сырой язык.
Просто сволочь...

Как вариант...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<html>
<head>
<script type="text/javascript">
	var x1= 1 ;
	var x2= 2 ; 
	function a(val) {
	   alert(x1+', '+x2+', '+val)
	}
	function b(val) {
	   alert(x1+', '+x2+', '+val)
	}
</script>
</head>
<body>
<form>
<table>
	<tr>
	<td> 
		<div style="text-align: center;">
			<input type="button" value='Start A'  onclick="a('sometext');"/>
			<input type="button" value='Start B'  onclick="b('sometext');"/>
		</div>
	</td>
	</tr>
</table>
</form>
</body>
</html>
...
Рейтинг: 0 / 0
19.08.2008, 18:10
    #35495667
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не видит методов
Я как понгимаю это из Struts.
Покажите что получилось в браузере.
...
Рейтинг: 0 / 0
20.08.2008, 18:41
    #35497814
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не видит методов
Нашел в чем причина.
Если приходит строка в которой есть апостроф или \n то пришедший код просто внутри функции Javascript переводится на другую строку. Ну в общем получается что вроде закрывающая скобка на следующей строке или лишняя кавычка.
Пробовал сделать это на Javascript при помощи string.replace - но получается что уже когда вызывается эта функция то возникает эта проблема.
То есть браузер видит чтото вроде
Код: plaintext
1.
2.
3.
4.
5.
<script ...>
  
 replace( 'it just example \n
 for you');
</script>
и говорит что нет закрывающей скобки.
Ну и есстественно не видит остальные функции потому что порядок нарушается.
Поэтому я в Java коде сразу удаляю знаки \n и заменяю кавычки на \'
до того как оно прийдет на страницу. Самим Javascriptom это трудно сделать.
...
Рейтинг: 0 / 0
20.08.2008, 20:41
    #35497966
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не видит методов
Обычный JavaScript допускает без проблем перевод строки \n
Видимо или JSP или Struts обрабатывает переводы строк до разбора текста.
ВОзможно, такое поведение касается только апострфов (одинарных кавычек) и с двойными кавычками все будет нормально
...
Рейтинг: 0 / 0
21.08.2008, 14:49
    #35499427
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не видит методов
жс не обрабатывает переводы строки, если они отрендерились как текст, а не как escape-последовательность :)
...
Рейтинг: 0 / 0
21.08.2008, 17:56
    #35500160
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не видит методов
Кстати есть одна недокументировнная фича. похожая на С# (если не ошибаюсь)

Код: plaintext
1.
2.
var str = " Такая строка допустима \<Нажать Enter>
... как ни странно"
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не видит методов / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]