Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.11.2016, 16:42
Новичок на форуме
Отправить личное сообщение для tasya53 Посмотреть профиль Найти все сообщения от tasya53
 
Регистрация: 27.09.2016
Сообщений: 9

Вопрос по многофреймовой структуре
Только начал разбираться в асинихронном JavaScript
Есть многофреймовый документ main.html

<HTML><HEAD><meta http-equiv='Content-Type' content='text/html;'>
</HEAD>
<frameset rows="80%,20%" frameborder="0">
<frame name="displayFrame" src="display.html" noresize="noresize" />
<frame name="hiddenFrame" src="about:blank" noresize="noresize" />
</frameset>
</HTML>
Невидимый фрейм hiddenFrame предназначен для асинхронного доступа к любому ресурсу (в примере вконтакте) через свойство location

Вот документ display.html

<HTML><HEAD><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'></HEAD>
<BODY>
<SCRIPT>
function requestCustomerInfo(fun)
{
var sid = document.getElementById('txtCustomerId').value;
var src = "https://api.vk.com/method/users.get?user_id="+sid+"&v=5.52";
alert(src+"-"+fun);
top.frames["hiddenFrame"].onload=fun;
top.frames["hiddenFrame"].location=src;
//alert(top.frames["hiddenFrame"].document.body.innerHTML);
alert(top.frames["hiddenFrame"].nodeValue);
return;
}

function GetCustomerName()
{
alert("OOOOOO");
return;
}
</SCRIPT>
Чтобы получить информацию о клиенте, введите его идентификационный номер:<BR>
Идентификационный номер: <input type="text" id="txtCustomerId" value=""><BR>
<input type="button" value="3апросить информацию о клиенте" onclick="requestCustomerInfo('GetCustomerName()')" >
<div id="divCustomerInfo"></div>
</BODY>
</HTML>

ВОПРОС!
1. КАК получить доступ к содержимому фрейма hiddenFrame где лежат данные о пользователе
2. КАК отловить событие onload фрейма hiddenFrame, когда эти данные уже пришли во фрейм.
Понимаю, что вопросы тупейшие и простейшие, но никак не могу разобраться
ЗАРАНЕЕ БЛАГОДАРЕН
Ответить с цитированием
  #2 (permalink)  
Старый 20.11.2016, 17:27
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,672

tasya53, отформатируй код
Ответить с цитированием
  #3 (permalink)  
Старый 20.11.2016, 17:39
Новичок на форуме
Отправить личное сообщение для tasya53 Посмотреть профиль Найти все сообщения от tasya53
 
Регистрация: 27.09.2016
Сообщений: 9

Господи, неужели никто не поможет!
КАК ПОСТРОИТЬ ССЫЛКУ НА ВСЕ СОДЕРЖИМОЕ СТРАНИЦЫ (https://api.vk.com/method/users.get?...5472603&v=5.52), ЗАГРУЖЕННОЙ ВО ФРЕЙМ (там всего одна строка).....
top.frames["hiddenFrame"].document.childNodes[0].innerHTML не дает содержимого - только пустые теги
Ответить с цитированием
  #4 (permalink)  
Старый 20.11.2016, 17:47
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,672

tasya53, и не так просто получить данные о пользователе:
- во-первых политика безопасности не даст доступа к фрейму с другого домена
- во-вторых в вк надо регистрировать приложение и по нему получать согласие пользователя для доступа к его данным (по крайней мере раньше так было не думаю что что-то сильно поменялось)

Не всё так просто в этой жизни мой друг Горацио.
Ответить с цитированием
  #5 (permalink)  
Старый 20.11.2016, 17:55
Новичок на форуме
Отправить личное сообщение для tasya53 Посмотреть профиль Найти все сообщения от tasya53
 
Регистрация: 27.09.2016
Сообщений: 9

Попробуйте что ли для начала

НЕ ТРЕБУЕТСЯ НИКАКАЯ РЕГИСТРАЦИЯ! - эта операция не требует авторизации
СОДЕРЖИМОЕ ДОКУМЕНТА У МЕНЯ ОТОБРАЖАЕТСЯ ВО ФРЕЙМЕ
КАК ПОЛУЧИТЬ ССЫЛКУ НА СОДЕРЖИМОЕ ЭТОГО ДОКУМЕНТА?
Ответить с цитированием
  #6 (permalink)  
Старый 20.11.2016, 18:05
Новичок на форуме
Отправить личное сообщение для tasya53 Посмотреть профиль Найти все сообщения от tasya53
 
Регистрация: 27.09.2016
Сообщений: 9

Rise,
В чем-то Вы наверное правы - загрузил локальный документ во фрейм и через top.frames["hiddenFrame"].document.firstChild.outerHTML получил его содержимое.
А вот для вконтакте только вижу пустоту, хотя текст ответа во фрейме присутствует
С чем это может быть связано?
Ответить с цитированием
  #7 (permalink)  
Старый 20.11.2016, 18:08
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,672

tasya53, так устроены браузеры.
Ответить с цитированием
  #8 (permalink)  
Старый 20.11.2016, 19:44
Новичок на форуме
Отправить личное сообщение для tasya53 Посмотреть профиль Найти все сообщения от tasya53
 
Регистрация: 27.09.2016
Сообщений: 9

Rise,
Если Вы понимаете в чем причина, подскажите, как всетаки вытянуть содержимое из фрейма - оно там есть, но в структуре документа пусто. Ведь откуда то строка ответа на экране берется
Буду очень Вам признателен
Ответить с цитированием
  #9 (permalink)  
Старый 20.11.2016, 19:58
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,672

tasya53, никак.
Ответить с цитированием
  #10 (permalink)  
Старый 20.11.2016, 20:05
Новичок на форуме
Отправить личное сообщение для tasya53 Посмотреть профиль Найти все сообщения от tasya53
 
Регистрация: 27.09.2016
Сообщений: 9

На вскидку clipboarddata или переместить мышь, скопировать, вставить куда нужно, но я с этими методами никогда не работал
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Меню с выезжающим сайдбаром Jaz Элементы интерфейса 17 26.06.2016 19:21
Неизвестный идентификатор FaNaT_96 Общие вопросы Javascript 14 01.05.2016 18:15
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Вопрос по each() и перебору строк таблицы battrack jQuery 1 09.02.2012 14:30
вопрос по структуре этого кода DmitryT Общие вопросы Javascript 2 19.02.2011 12:52