Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > открытие страницы внутри страницы


Автор: krinart 22.7.2008, 21:08
доброго времени суток всем!

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

необходимо организовать страницу внутри страницу, то есть область внутри страницы, где можно было бы открыть другую
не знаю, может есть какието стандартные способы для этого, я же пытался сделать это с помощью ajax'a и библиотеки php curl.. то есть сначала загрузить страницу, а потом заменить все относительные ссылки в этой странице на событе onClick="gotoPage(link)", и соответсвенно опять-таки с помощью того же ajax'a загрузить новую страницу и заново в ней копаться
в общем койчего конечно получилось и даже работает smile , проблема же возникает если на странице используется всё тот же ajax изза политики безопасности.. в общем то можно и это конечно решить, неаправляя сначала запрос на свой сервер а затем уже на нужный, но слишком уж всё это сложно и выходит очень долго грузится

может есть более простой способ решения данной задачи?

Автор: Itsys 22.7.2008, 21:26
А просто вставить iframe не пробовал?

Автор: krinart 22.7.2008, 21:38
всё дело в том, что мне нужно подставлять куки, то есть я хочу сделать автоматический просмотр аккаунтов... выбираешь нужный акк - и на тебе, ни страницы авторизации, ни ввода логина с паролем

возможно ли такое средствами js и iframe?

Автор: JSman 23.7.2008, 16:40
копайся в серверной части.

Автор: krinart 24.7.2008, 15:04
JSman, при всём уважении, я обратился сюда за помощью, чтобы мне намекнули что именно или как делать, а не просто сказали делай... я даже привел свои идеи, которые работают, но реализованы помоему не лучшим образом.. вот мне и стало интересно, можно ли както подругому сделать то что я задумал..

неужели ни у кого нет никаких мыслей по этому поводу?

Автор: JSman 24.7.2008, 17:32
krinart,  пока мы четко, по полочкам, не увидим и не поймем, что тебе нужно сделать, тебе помочь ни в чем не сможем. Напиши точно, без "то есть" и тд. Я и многие ребята на данном форуме обязательно помогут!

Автор: krinart 24.7.2008, 22:23
итак, необходимо организовать просмотр аккаунтов внутри одной страницы... 
для этого на основной странице есть возможность выбора нужного аккаунта, а ниже есть область куда необходимо выводить информацию аккаунта, которая также представляет собой страницу..

тег <iframe> использовать не получится, так как он, насколько я понимаю, берёт куки браузера, мне же нужно подставлять их в зависимости от выбранного аккаунта

для этого я использую js.. а конкретней функцию userPage(userID, page), которая принимает id пользователя и страницу, на которую необходимо перейти. Эта функцию вызывается всякий раз, когда нажимается ссылка. Далее я передаю эту информацию на локальный сервер, где при помощи php и библиотеки curl запрашиваю нужную мне страницу. После того как я получаю страницу, мне нужно ВСЕ ссылки изменить, то есть сделать так, чтобы при нажатии на неё мы не переходили на эту ссылку, а вызывалась функция userPage, например

ссылку вида
Код

<a href="/forum.php">

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

<a href="http://localhost/forum.php">


мне нужно её преобразовать к ссылке вида
Код

<a href="#" on Click="userPage('xxxx', '/forum.php')">

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

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

Единственный вариант, который я вижу, это сделать так, чтобы если на сервер некто обращается с запросом на php-файл, которого здесь нет, чтобы сервер перенаправлял запрос на заданный файл, а тот уже перенаправлял запрос на файл, который изначально запрашивался, но на нужном сервере.

Но вот как сделать это, я не знаю.

А может я вобще изначально пошёл неверным путём, и всё можно сделать несколько проще... хотелось бы услышать ваши мения


Автор: Itsys 25.7.2008, 22:55
Бррр.... так тебе надо сслыку поменять?

Тогда примерно так:
Код

<a id="a1" href="/page.php">test</a>
<a href="#" onclick="on(); return false;">click me</a>
....
<script>
function on(){
a1 = document.getElementById('a1');
a1.onclick = function(){
eval('userPage(\'xxxx\', \'' + a1.href + '\')')
}
a1.href = '#';
}
</script>

Автор: JSman 26.7.2008, 17:19
Цитата(krinart @  24.7.2008,  22:23 Найти цитируемый пост)
мне нужно её преобразовать

Преобразовывать не нужно.

Допустим, что основной контент с ссылками лежит в блочном элементе - контейнере - div, например.

Ловишь событие этого элемента onclick.  Проверяешь event.srcElement.tagName=='a'. работаешь с a.href. Твоя функция должна возвратить return false - это предотвратит новые записи в историю и не даст осущесвить переход по умолчанию.

Говоря о cookie, в JavaScript можно их задавать, но при работе с аккаунтами твой сервак должен генерировать специальную инфу, которая ляжет в их основу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)