Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2

URL страницы, загруженной в <frame>

10.10.2015, 20:35. Показов 4426. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В окне <frame> не показывается URL адрес загруженной страницы (стороннего сайта). Надо, чтобы этот адрес показывался в другом фрейме, например, с именем "top". Как это сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.10.2015, 20:35
Ответы с готовыми решениями:

Извлечение изображения из страницы загруженной в WebBrowser
Всем привет! Задача состоит в том: Есть компонент WebBrowser в котором отображается какая-то веб-страница. Нужно, чтобы по клику...

Как определить кодировку загруженной страницы?
При получении страници не верная кодировка. НИчего сделать не могу. Вот пример r =...

Как убрать html теги загруженной страницы?
Как убрать html теги загруженной страницы?

16
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
10.10.2015, 20:58
никак, см. правило ограничения домена
1
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
10.10.2015, 21:33  [ТС]
Жаль, а я не знал. Ну, а если, скажем, на моей странице - три фрейма. В первом я пропишу ссылку на страницу, которая будет загружаться во второй фрейм. Ссылка, как обычно: <a href="http://другой сайт.ru">Текст</a>. Можно ли хотя бы в таком случае, чтобы указанный URL показывался в третьем фрейме?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
10.10.2015, 21:39
Htext, вы поймите
dom фреймов с другова домена - вещь недосигаемая

Добавлено через 47 секунд
к ним никак не обратится
нет есть конечно способы, но они всё равно упираются в доступ к обоим доменам
0
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
10.10.2015, 21:45  [ТС]
Я что имел в виду: может, хотя бы можно в одном фрейме как-то записать адрес ссылки в переменную js. А ее уже передать другому фрейму (находящемуся на том же домене).
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
10.10.2015, 22:00
Htext, адрес ссылки можно записать с помощью получения параметров элемента
JavaScript
1
 var MyP=document.getElementById("id ссылки").href
а потом можно всё отправить через postMessage
1
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
10.10.2015, 22:13  [ТС]
Ой, что-то я совсем запутался... Посмотрел по Вашей ссылке: "Общение окон с разных доменов: postMessage". Так, а как же политика безопасности - а как в Вашем предыдущем сообщении - домен же должен быть один и тот же? А в этом методе, получается, могут быть РАЗНЫЕ домены?

Добавлено через 2 минуты
Или там для <iframe>? Для <frame>, получается, так нельзя делать?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
10.10.2015, 23:58
Htext, вы сильно запутались

ограничение доменов можно обойти, для этого можно использовать разные способы, но все они требуют доступа к контенту страниц

я вообще не вижу смысла frame-ов, по-моему это прошлый век, но факт остаётся фактом, надо передать данные

я предлагаю вам передовать их через postMessage
прикол его в том, что тут вам самому предоставляется решение, принимать или нет эти данные
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
11.10.2015, 00:11
Htext, вообще теги <frame> и <frameset> в спецификации HTML5 объявлены нерекомендуемыми
а тег <iframe> продолжает оставаться вполне нормальным и рекомендованным к использованию тегом
0
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
12.10.2015, 10:18  [ТС]
Да, я знаю, что прошлый век. Но у меня стоит задача - сделать нечто типа справочной системы (перечень ссылок на ресурсы). Делаю для себя, ибо закладки в браузере - неудобно (ресурсов уже около сотни). Слева во фрейме - перечень, а в правом фрейме открывается сайт, соответствующий адресу ссылки. Так вот я хочу в верхнем фрейме (top) вывести адрес открытого сайта (т.е. открытую ссылку).

Добавлено через 7 минут
Понятно, что можно, конечно, сделать блок position:fixed; , связанный с левым фреймом и прикрепить его где-то сверху (а в этом блоке отображать адрес ссылки) , но это уже, как говорится, уже нечто ненатуральное. Хотелось, чтобы адрес ссылки передавался в верхний фрейм.
В текущем фрейме это работает:
MyP=document.getElementById("id-ссылки").href;
document.write(MyP+'<br />');
А вот как передать в другой фрейм - не знаю.

Добавлено через 1 минуту
Цитата Сообщение от BANO Посмотреть сообщение
а потом можно всё отправить через postMessage
Смотрел я про это. Во-первых, там же для iframe, а не для frame. Во-вторых (и это весомее, к сожалению...) я там так ничего и не понял.

Добавлено через 52 минуты
Цитата Сообщение от kalabuni Посмотреть сообщение
либо окно внутри ифрейма <iframe name="myIFRAME">, находящегося в родительском окне
тогда к любому тегу дочернего окна, имеющему id="myTAG" можно будет обратиться из родительского так --
window.frames ['myIFRAME'].document.getElementById ('myTAG')
А если окно не дочернее (и не родительское), а равноправное, тогда как?
0
81 / 81 / 50
Регистрация: 26.11.2012
Сообщений: 303
12.10.2015, 10:19
Проблем нету, если фреймы все на одной странице.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<iframe src="javascript:'тест'" style="height:60px"></iframe>
 
<script>
  var iframe = document.getElementsByTagName('iframe')[0];
 
  var iframeDoc = iframe.contentWindow.document;
 
  if (iframeDoc.readyState == 'complete') {
    iframeDoc.body.style.backgroundColor = 'green';
  }
  iframe.onload = function() {
    var iframeDoc2 = iframe.contentWindow.document;
    iframeDoc2.body.style.backgroundColor = 'orange';
  }
</script>
Альтернативный способ доступа к окну ифрейма — это получить его из коллекции window.frames.

Есть два способа доступа:
  • window.frames[0] — доступ по номеру.
  • window.frames.iframeName — доступ по name ифрейма.
Обратим внимание: в коллекции хранится именно окно (contentWindow), а не DOM-элемент.

Демонстрация всех способов доступа к окну:

JavaScript
1
2
3
4
5
6
7
8
9
10
<iframe src="javascript:''" style="height:80px" name="i"></iframe>
 
<script>
  var iframeTag = document.body.children[0];
 
  var iframeWindow = iframe.contentWindow; // окно из тега
 
  alert( frames[0] === iframeWindow ); // true, окно из коллекции frames
  alert( frames.i == iframeWindow ); // true, окно из frames по имени
</script>
Внутри ифрейма могут быть свои вложенные ифреймы. Всё это вместе образует иерархию.

Ссылки для навигации по ней:
  • window.frames — коллекция «детей» (вложенных ифреймов)
  • window.parent — содержит ссылку на родительское окно, позволяет обратиться к нему из ифрейма.
JavaScript
1
2
// (из окна со фреймом)
window.frames[0].parent === window; // true
  • window.top — содержит ссылку на самое верхнее окно (вершину иерархии).
Всегда верно (в предположении, что вложенные фреймы существуют):

JavaScript
1
window.frames[0].frames[0].frames[0].top === window
А вообще, гугл))
1
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
12.10.2015, 11:59  [ТС]
Цитата Сообщение от temkasky Посмотреть сообщение
А вообще, гугл))
Так и так уж несколько дней в нем плотненько сижу.
Вот здесь я нашел, что можно сделать так:
HTML5
1
2
3
4
5
<form>
<input type="button"
       value="Click me!"
       onClick="parent.frames[1].document.write(MyP);">
</form>
Добавлено через 3 минуты
Если со ссылкой, то так, вроде, работает:
HTML5
1
<a href="/" id="1" onclick="give(this.id); ">fvtrggvtr</a>
HTML5
1
2
3
4
5
6
7
<script>
function give(val) {
  var obj = document.getElementById('links');
  MyP=document.getElementById(val).href;
 parent.frames[1].document.write(MyP); 
}
</script>
Добавлено через 15 минут
Но, вот такой интересный вопрос: если во фрейме №1 загружен файл с того же самого домена (т.е. с моего), то все нормально - адрес ссылки прописывается. Однако, если в этот фрейм (для эксперимента) загрузить документ с другого сайта, то адрес ссылки прописываться не хочет. Я догадываюсь, что, видимо, и не должен. Но, вопрос: почему? Из-за политики безопасности, что ли?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
12.10.2015, 14:33
Цитата Сообщение от Htext Посмотреть сообщение
политики безопасности, что ли?
да

она старается оградить юзера от подглядывания просматриваемых им ресурсов


а чем вам не нравится iframe?
of примерно покажу как я себе представляю решение этой задачи
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
12.10.2015, 14:45
вот как будет при открытых ссылках

(вариант, не поверх фрейма, а рядом, то есть он ресайзится будет и эта кнопка вам не будет мешать)

а вот ка при закрытых


можно это оформить по круче, и тупо сделать расширение, которое будет добавлять этот блок ко всем сайтам, и вы там сможете этой вещью пользоваться
0
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
12.10.2015, 19:15  [ТС]
Цитата Сообщение от BANO Посмотреть сообщение
вариант, не поверх фрейма, а рядом
В принципе, да, удобно. А насчет расширения (если Вы имеете в виду расширение для браузера)... ну, на данном своем этапе развития я такое не сделаю пока, ибо опыта здесь совсем нет. Но, смутно подозреваю, что оно только мешать будет, уводя от сайта, открытого в данный момент (допустим, соблазнился справкой, вызвал панеь... и в итоге покинул текущий сайт). Лучше я, когда необходимо, открою свою справку в отдельном окне (из закладки) и там спокойно похожу по ссылкам.
Цитата Сообщение от BANO Посмотреть сообщение
а чем вам не нравится iframe?
Опять же, гнетут меня смутные подозрения, что по функционалу (в моем случае) здесь отличий мало, но frame - проще. Потом, и frame (левый) тоже можно сделать закрывающимся (или сужающимся до минимума). Впрочем, там же есть полоса прокрутки - ее как раз можно влево сдвинуть почти до упора.
0
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
12.10.2015, 19:35  [ТС]
Вот, пока на таком этапе:

А попутно вопрос: если слева от ссылок я приделаю фавиконки (т.е. чтобы ссылки выглядели, как в браузере), не будут ли на меня в обиде владельцы сайтов (на которые идут ссылки) - если потом эта справка будет размещена в открытом доступе?
И попутный вопрос: например, у Яндекса есть сервис для получения иконок с сайтов: http://favicon.yandex.net/favicon/mysite.ru (у Google тоже есть аналогичный, даже выше качеством). Интересно, можно ли таким образом использовать этот сервис, если иконки будут автоматически загружаться в меню (т.е. будет тег img, а в нем - ссылка на сервис и далее адрес того сайта, на который в меню слева идет ссылка)? Или сервис предназначен только для "ручного" использования? А то смотрел про их API и т.д. - но так ничего и нашел именно по поводу этого сервиса.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
12.10.2015, 21:36
Цитата Сообщение от Htext Посмотреть сообщение
открытого в данный момент (допустим, соблазнился справкой, вызвал панеь... и в итоге покинул текущий сайт)
тк кто мешает сделать, чтобы ссылки открывались в другом окне?
лично я за расширение для браузера, я их для себя иногда делаю, но это бывает редко(они уже давно все где-то в загашниках), чаще для знакомых, тк вот
предлагаю просто сделать вам маленькую кнопочку в углу, которая будет открывать ваше меню, а ссылки которые в этом меню сразу будут открываться в новом окне

Цитата Сообщение от Htext Посмотреть сообщение
не будут ли на меня в обиде владельцы сайтов (на которые идут ссылки)
знаете, ту прикол в том, что они и так их каждому юзеру раздают на право и на лево
но они же захотят денег получить с вас, за использование иконок
короче не советую
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.10.2015, 21:36
Помогаю со студенческими работами здесь

Получить cookies из загруженной страницы в webview javafx
нужно в cookies найти параметр ssoid

Как получить код полностью загруженной страницы
Хочу получить код страницы окончательно загруженной со всеми выполненными скриптами. При использовании HttpWebRequest и HttpWebResponse...

Как получить имена фреймов страницы загруженной в TChromium
Как получить имена фреймов (либо любую другую информацию, позволяющую выбрать необходимый фрейм и продолжить работу с ним в дальнейшем) ...

Как достать элементы из html-страницы, загруженной в WebBrowser
Добрый день! Беру страницу: http://publication.pravo.gov.ru/SignatoryAuthority/region72 На странице размещена информация о 30...

Как получить HTML код страницы, загруженной в Chromium?
Как получить HTML код страницы,загруженной в chromium idhttp1.get - не подходит,т.к там код страницы без авторизации. Мне нужен код...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru