Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Работа с объектами в javascript / 15 сообщений из 15, страница 1 из 1
10.08.2007, 16:09
    #34720434
dima-russel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в 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.
28.
29.
30.
31.
function JSUtils(){
    this.createFakeElement = function(doc, id, js, debug){
    	var aElem = doc.createElement("a");
        var jsTrimmed = trim(js);
        if (jsTrimmed && jsTrimmed.charAt(jsTrimmed.length- 1 )!=';'){
            js = jsTrimmed+";";
        }
        var newJS = "try {"+js+"}catch(err){document.getElementById('"+id+"debug').innerHTML=err.description;}";
        aElem.setAttribute("onclick", newJS);
        aElem.id = id;
        var lastNode = doc.childNodes[ 0 ];
        if (lastNode.childNodes[ 0 ]){
            lastNode.insertBefore(aElem, lastNode.childNodes[ 0 ]);
        }else{
            lastNode.appendChild(aElem);
        }
        if (debug){
            aElem.innerHTML = id;
        }
        this.createFakeElementResult(doc, aElem, id+"debug", debug);
    }
    
    this.createFakeElementResult = function(doc, parent, id, debug){
        var aElem = doc.createElement("div");
        aElem.id = id;
        if (!debug){
            aElem.setAttribute("style", "display:none");
        }
        parent.appendChild(aElem);
        aElem.innerHTML = "cleared";
    }
}

Вызываю её как
Код: plaintext
1.
2.
<form>
<input type="submit" onClick="JSUtils().createFakeElement(doc, id, js, debug)" style="width: 120px; font-weight: normal;"  value="Create element!"/>
       </form>
но ничего не срабатывает почему-то. Я с объектами в javascript не очень, но вроде всё правильно написал. А тут даже отладчик ничего не ловит. Где ошибся-то?
...
Рейтинг: 0 / 0
10.08.2007, 16:14
    #34720459
Green2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
не увидел где создаётся экземпляр объекта...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10.08.2007, 16:18
    #34720483
belugin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
new JSUtils().createFakeElement(
...
Рейтинг: 0 / 0
10.08.2007, 16:40
    #34720570
dima-russel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
Сделал так
Код: plaintext
<input type="submit" onClick="new JSUtils().createFakeElement(doc, id, js, debug)" ...
Всё равно ничего.В firebug при нажатии на кнопку указатель вылетает на тег <html>, а потом в файл со скриптом...
...
Рейтинг: 0 / 0
10.08.2007, 16:57
    #34720638
Хрюхрюшкин.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
Эххх, маладежжжжььь...
Никакой это у тебя не объект.
...
Рейтинг: 0 / 0
10.08.2007, 17:07
    #34720678
dima-russel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
Хорошо. Как правильно вызвать?
...
Рейтинг: 0 / 0
10.08.2007, 17:22
    #34720721
Хрюхрюшкин.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
dima-russelХорошо. Как правильно вызвать?


Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
JSUtils = function() {
    }

JSUtils.prototype.createFakeElement = function(doc, id, js, debug){
    	var aElem = doc.createElement("a");
        var jsTrimmed = trim(js);
        if (jsTrimmed && jsTrimmed.charAt(jsTrimmed.length- 1 )!=';'){
            js = jsTrimmed+";";
        }
        var newJS = "try {"+js+"}catch(err){document.getElementById('"+id+"debug').innerHTML=err.description;}";
        aElem.setAttribute("onclick", newJS);
        aElem.id = id;
        var lastNode = doc.childNodes[ 0 ];
        if (lastNode.childNodes[ 0 ]){
            lastNode.insertBefore(aElem, lastNode.childNodes[ 0 ]);
        }else{
            lastNode.appendChild(aElem);
        }
        if (debug){
            aElem.innerHTML = id;
        }
        this.createFakeElementResult(doc, aElem, id+"debug", debug);
    }
    
JSUtils.prototype.createFakeElementResult = function(doc, parent, id, debug){
        var aElem = doc.createElement("div");
        aElem.id = id;
        if (!debug){
            aElem.setAttribute("style", "display:none");
        }
        parent.appendChild(aElem);
        aElem.innerHTML = "cleared";
    }



Я только не вижу, что такое у тебя doc
...
Рейтинг: 0 / 0
10.08.2007, 17:48
    #34720790
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
dima-russelСделал так
Код: plaintext
<input type="submit" onClick="new JSUtils().createFakeElement(doc, id, js, debug)" ...
Всё равно ничего.В firebug при нажатии на кнопку указатель вылетает на тег <html>, а потом в файл со скриптом...
а консоль ошибок даёт doc is not defined=)?
doc, id, js, debug чему равны?

Хрюхрюшкин. , и так и так работать будет
...
Рейтинг: 0 / 0
10.08.2007, 17:54
    #34720811
dima-russel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
Та да-я тож допёр что перенных на входе маловато. Начальник впёр-сиди разбирайся, вызовешь функцию и всё там, ан не всё так просто. Теперь вот пытаюсь понять, что там теоретически могло подаваться. Ну похоже что doc=this....
...
Рейтинг: 0 / 0
10.08.2007, 18:00
    #34720828
Хрюхрюшкин.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
LINUXER
Хрюхрюшкин. , и так и так работать будет
Меня напрягло заявление "Работа с объектами" :)
...
Рейтинг: 0 / 0
10.08.2007, 18:00
    #34720832
Хрюхрюшкин.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
Я имел в виду, конечно, объект в смысле экземпляр некоего класса :)
...
Рейтинг: 0 / 0
10.08.2007, 18:32
    #34720904
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
Хрюхрюшкин.Я имел в виду, конечно, объект в смысле экземпляр некоего класса :)
прототипа=)
...
Рейтинг: 0 / 0
10.08.2007, 18:36
    #34720917
Хрюхрюшкин.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
LINUXER Хрюхрюшкин.Я имел в виду, конечно, объект в смысле экземпляр некоего класса :)
прототипа=)
Т.к. кроме прототипов ничего похожего на классы нет, то можно их и классами называть, я думаю. Это привычнее.
...
Рейтинг: 0 / 0
10.08.2007, 18:58
    #34720958
dima-russel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
Holly wars развели =).
Короче переменные в функцию-
doc= документ
id= id, в который будет передаватся результат
js= произвольный скрипт
debug= режим просто

Уже написал что-то типа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<input type="submit" onClick="JSUtils.createFakeElement(document, document.getElementById('my'), hi(), false)" style="width: 120px; font-weight: normal;"  value="Create element!"/>
       </form>
			</td>
			<!-- content -->
	</tr>
	<tr>
		<td class="footer" height="31" id="my">
			</td>
hi()-просто вызов алерта.
А оно говрит что JSUtils.createFakeElement - не функция вообще. И как его победить??
...
Рейтинг: 0 / 0
11.08.2007, 12:57
    #34721570
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с объектами в javascript
dima-russel
А оно говрит что JSUtils.createFakeElement - не функция вообще. И как его победить??
правильно говорит JSUtils это функция. У функций нет метода createFakeElement.
А начальник наверно в образовательных целях "впёр". Разберитесь сначала что есть функция, что объект, и как с этим работать в JS
http://dklab.ru/chicken/nablas/38.html
http://dklab.ru/chicken/nablas/39.html
там ещё про JS наблы есть
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Работа с объектами в javascript / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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