Форум сетевых администраторов
Показаны 16 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Java/Java Scripts (http://netadmin.ws/forum/forumdisplay.php?forumid=9)
-- Динамическая загрузка данных HTTPRequest (Google) (http://netadmin.ws/forum/showthread.php?threadid=10851)


Помещено he][es 18-07-2005 в 08:34:

Динамическая загрузка данных HTTPRequest (Google)

Делаю нечто подобное: http://www.google.com/webhp?complete=1&hl=en
Возникли следующие проблемы:
Если передать в слой текст таким образом:
rez.childNodes[0].nodeValue = rez.childNodes[0].nodeValue + "<br>"+contr_agents_list[i][k]+'\n';
то < он заменит на &lt; а > на &gt; как тогда туда текст передавать?..

Не могу понять как работают именованные массивы в яве?.. Они вообще там есть?
contr_agents_list[counter][ccounter] = vvale;
если ccounter - текстовая перем. то выдает ошибку...

Как создать слой и записать в него текст?..
b=document.createElement(\"DIV\"); создает элемент, но у него нет childNodes[0].nodeValue в которое (как я понял) пишется текст слоя...

__________________
Админ - вождь Апачей...


Помещено he][es 18-07-2005 в 13:27:

Ещё вопрос, как обратиться к полю формы находящейся в IFRAME?
Нашёл такой вариант:

PHP:


if (L.contentDocument && L.contentDocument.body.offsetHeight) {
       
//W3C DOM (and Mozilla) syntax
       //L.contentDocument.forms["add_contr_agent"].elements["title"].value = document.forms["add_rashod"].elements["seller[title]"].value;
       //L.contentDocument.forms["add_contr_agent"].elements["title"].focus();
       
L.contentDocument.add_contr_agent.title.value = 'fucking vasia';
       
L.contentDocument.add_contr_agent.title.focus();

} else if (
L.Document && L.Document.body) {
       
// IE DOM syntax
       
L.Document.forms["add_contr_agent"].elements["title"].value = document.forms["add_rashod"].elements["seller[title]"].value;
       
L.Document.forms["add_contr_agent"].elements["title"].focus();
}


не работает

__________________
Админ - вождь Апачей...


Помещено he][es 18-07-2005 в 16:59:

Ещё такой вопрос: как передать из JS ч/з GET русские буковки?..
Что бы из "русский текст" получилось "%F0%F3%F1%F1%EA%E8%E9+%F2%E5%EA%F1%F2"???

__________________
Админ - вождь Апачей...


Помещено RaZEr 18-07-2005 в 17:17:

escape()

__________________
The time was broken ...


Помещено he][es 18-07-2005 в 19:17:

краткость сестра таланта?..
а) А как же куча моих др. вопросов?.. Недостойны ответа?..
б) Предложеный вариант вами опробован?.. Нет, я конечно допускаю что делаю что то не так, но escape('русский текст') = " %u0440%u0443%u0441%u0441%u043A%u0438%u0439%20%u044
2%u0435%u043A%u0441%u0442"
а не требуемое мне "%F0%F3%F1%F1%EA%E8%E9+%F2%E5%EA%F1%F2"...

По поводу escape():

quote:
В JavaScript имеется функция escape(), которая URL-кодирует строку данных. К сожалению, она возвращает результат только в виде Unicode. Например, строка "проба" представляется ей так "%u043F%u0440%u043E%u0431%u0430". В PHP нет функций, умеющих раскодировать такое представление данных (urldecode() тут плохой помощник, ибо она не поддерживает формат %uXXXX).

В то же время, escape() позволяет закодировать совершенно любой символ, будь то русская буква, литера греческого алфавита или даже китайский иероглиф.

Вообще говоря, в последний версиях JavaScript имеется функция encodeURIComponent(), умеющая кодировать данные в обход Unicode. Однако она не поддерживается, например, в Internet Explorer 5.0, так что из соображения кроссбраузерности нам не подходит.


Т.что вопрос актуален...

__________________
Админ - вождь Апачей...


Помещено RaZEr 18-07-2005 в 19:50:

Пройди по строке: escape(String.fromCharCode(mychar))

__________________
The time was broken ...


Помещено he][es 18-07-2005 в 20:38:

:/ Чё то не догоняю... На любую букву выдает %00

__________________
Админ - вождь Апачей...


Помещено RaZEr 18-07-2005 в 23:43:

Вообщем пытаться выбить из escape() строку для rawurldecode() недальновидно. Поэтому напишем rawurldecodeEx().


PHP:


function getuni($num) {
if(
$num<128) return chr($num);
if(
$num<2048) return chr(($num>>6)+192).chr(($num&63)+128);
if(
$num<65536) return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128);
if(
$num<2097152) return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128) .chr(($num&63)+128);
}

function 
getchar ($m) {
return 
$m[2] ? getuni(hexdec($m[2])) : chr(hexdec($m[3]));
}

function 
RawURLDecodeEx ($str) {
return 
preg_replace_callback('/%(u([0-9A-F]{4})|([0-9A-F]{2}))/','getchar',$str);
}

__________________
The time was broken ...


Помещено he][es 19-07-2005 в 08:03:

RaZEr это я так понял на PHP мы получаем строку в unicode (или не в unicode?) и понвертируем?.. Ð_то довольно сложно. Хотелось бы на яве... Нет такого решения?

__________________
Админ - вождь Апачей...


Помещено RaZEr 19-07-2005 в 08:09:

Сложно как раз на JS. Придётся писать больше доп. ф-ий.

__________________
The time was broken ...


Помещено he][es 19-07-2005 в 08:15:

Ð_х... что за изврат... придётся так делать...
(А вообще куда это он конвертирует? "%F0%F3%F1%F1%EA%E8%E9+%F2%E5%EA%F1%F2" то что мне нужно как называется?..

__________________
Админ - вождь Апачей...


Помещено RaZEr 19-07-2005 в 08:40:

url encode это всё называется.

__________________
The time was broken ...


Помещено he][es 20-07-2005 в 08:19:

RaZEr а как по поводу ост. вопросов?.. Для меня сейчас оч. актуальна работа с DIVами и IFRAMEами...

__________________
Админ - вождь Апачей...


Помещено RaZEr 20-07-2005 в 08:29:

По первому - либо innerHTML, либо создавай через DOM интерфейс.

Ассоц. массивов в яве нет. Есть структуры.

Текстовые элементы создаются ф-ией createTextNode()

__________________
The time was broken ...


Помещено he][es 20-07-2005 в 11:40:

Т.е. я пишу вместо
rez.childNodes[0].nodeValue = "текст ХТМЛ"
rez.childNodes[0].nodeValue = innerHTML("чего то")?
(Не совсем пока логику JS & DOM понимаю...)
"структуры"?.. Ð_то как по англицки?.. (что б в доке посм.?)

А по поводу обращения к элементам формы?..

(Пасибище бальшущее за помощь )

__________________
Админ - вождь Апачей...


Помещено he][es 07-09-2005 в 23:26:

Ещё один вопрос:
Есть функция:

PHP:


function loadXMLDoc(url) {
    
// branch for native XMLHttpRequest object
    
if (window.XMLHttpRequest) {
        
req = new XMLHttpRequest();
        
req.onreadystatechange = processReqChange;
        
req.open("GET", url, true);
        
req.send(null);
    
// branch for IE/Windows ActiveX version
    
} else if (window.ActiveXObject) {
        
req = new ActiveXObject("Microsoft.XMLHTTP");
        if (
req) {
            
req.onreadystatechange = processReqChange;
            
req.open("GET", url, true);
            
req.send();
        }
    }
}

Но т.к. я сильно "подсел" на эту штуку (динам. подгрузка), и хочу использовать больше чем одно обращение к БД, то хочу её немного переписать, что бы она создавала объект (req) с переданным ей именем (т.е. я её вызываю loadXMLDoc(url, 'first'); loadXMLDoc(url, 'second'); и в рез-те получаю 2 объекта first & second). И соответственно запускаю различные функции (processReqChange) для обработки рез-ов запроса.
В оригинале вся конструкция выглядит след. образом:

PHP:

function checkLimit() {
    if( 
some conditions ) {
        
url  = 'some url';
        
loadXMLDoc(url);
    }
}

function 
loadXMLDocum(url) {
    
// branch for native XMLHttpRequest object
    
if (window.XMLHttpRequest) {
        
req = new XMLHttpRequest();
        
req.onreadystatechange = processReqChange;
        
req.open("GET", url, true);
        
req.send(null);
    
// branch for IE/Windows ActiveX version
    
} else if (window.ActiveXObject) {
        
req = new ActiveXObject("Microsoft.XMLHTTP");
        if (
req) {
            
req.onreadystatechange = processReqChange;
            
req.open("GET", url, true);
            
req.send();
        }
    }
}

function 
processReqChange() {
    if (
req.readyState == 4) { 
        if (
req.status == 200) {
      
response = req.responseXML.documentElement;
          
method = response.getElementsByTagName('method')[0].firstChild.data;
            
result = response.getElementsByTagName('result')[0].firstChild.data;
        }
    }
}

__________________
Админ - вождь Апачей...


Формат времени GMT. Текущее время 15:01.
Показаны 16 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.