Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 12.12.2010, 14:41
Интересующийся
Отправить личное сообщение для taraba4 Посмотреть профиль Найти все сообщения от taraba4
 
Регистрация: 08.12.2010
Сообщений: 19

хм... к сожалению ничего не происходит((
Ответить с цитированием
  #32 (permalink)  
Старый 12.12.2010, 15:38
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,432

Всё работает.
<html>
<head>
	<style type="text/css">html,body,iframe{width:100%;height:100%;border:0;padding:0;margin:0;} html,body{overflow:hidden}</style>
</head>
<body>
	<script type="text/javascript">document.write('<iframe src="http://ajitae.no-ip.org/show'+location.hash.slice(1)+'"></iframe>')</script>
</body>
</html>


По крайней мере в ff, мож и есть какие нюансы с браузерами, но лень смотреть.

Последний раз редактировалось Aetae, 12.12.2010 в 15:41.
Ответить с цитированием
  #33 (permalink)  
Старый 12.12.2010, 16:12
Интересующийся
Отправить личное сообщение для taraba4 Посмотреть профиль Найти все сообщения от taraba4
 
Регистрация: 08.12.2010
Сообщений: 19

Спасибо, сейчас тогда еще раз попробую протестить...

А не мог бы помочь разобраться с этим: Получение Url страницы загруженной в iframe
Ответить с цитированием
  #34 (permalink)  
Старый 12.12.2010, 16:20
Интересующийся
Отправить личное сообщение для taraba4 Посмотреть профиль Найти все сообщения от taraba4
 
Регистрация: 08.12.2010
Сообщений: 19

Aetae,
Вообщем то да, работает только в ff((
Ответить с цитированием
  #35 (permalink)  
Старый 12.12.2010, 16:37
Интересующийся
Отправить личное сообщение для dionis Посмотреть профиль Найти все сообщения от dionis
 
Регистрация: 06.11.2009
Сообщений: 13

<html>
<script type="text/javascript">
    function MyIframeIsLoaded() {
        alert('is loaded');
    }
    function MyOnLoad() 
    {
        var frameRequest = document.getElementById("myIFrame");
        frameRequest.setAttribute("src", 'http://www.google.com');
    }
</script>
<body id="myBody" onload="MyOnLoad();">
    <iframe id="myIFrame" onload="MyIframeIsLoaded();">
    
    </iframe>
</body>
</html>


по поводу вашего вопроса, то как только загрузилась страница с другого домена, тут же закрывается весь доступ к этой странички через DOM (в целях безопасности), поэтому после загрузки странички страничка должна кинуть postMessage родительскому окну (в качестве параметра можете передать адрес странички), родительское окно должно подписаться на событие получения сообщений, получить это собщение и вывести его на странички. Как мне кажется лучшим вариантом будет менять хеш родительского окна (как и предложил Aetae, только менять хешь не непосредственно а через отправку сообщений) а при загрузке обрабатывать его и открывать соответственную страницу.
пример http://site.ru#mypage1, http://site.ru#mypag2 и тд.
Ответить с цитированием
  #36 (permalink)  
Старый 12.12.2010, 17:18
Интересующийся
Отправить личное сообщение для taraba4 Посмотреть профиль Найти все сообщения от taraba4
 
Регистрация: 08.12.2010
Сообщений: 19

dionis,
Вообщем то не совсем понял принцып работы, ну сейчас попробую разобраться...

Не могли бы вы все таки помочь вот с этим постом: Получение Url страницы загруженной в iframe
Ответить с цитированием
  #37 (permalink)  
Старый 12.12.2010, 18:05
Интересующийся
Отправить личное сообщение для dionis Посмотреть профиль Найти все сообщения от dionis
 
Регистрация: 06.11.2009
Сообщений: 13

вобщем с тебя быть добрым и отзывчевым
код на сайте http://run.local/index.htm
<html>
<script type="text/javascript">
    PostAjax = {};

    PostAjax.receiveMessage = function (event) {
        window.location.hash = event.data;
    };

    PostAjax.AddEvent = function (obj, eventType, fn) {
        var that = this;
        var tempFunction = function (e) { fn.call(that, e); };
        if (obj.addEventListener) {
            obj.addEventListener(eventType, tempFunction, false);
            return true;
        } else if (obj.attachEvent) {
            var r = obj.attachEvent("on" + eventType, tempFunction);
            return r;
        } else {
            return false;
        }
    };

    PostAjax.AddEvent(window, 'message', PostAjax.receiveMessage);

    function MyOnLoad() {
        var frameRequest = document.getElementById("myIFrame");
        frameRequest.setAttribute("src","http://your.local" + window.location.hash.slice(1));
    }
</script>
<body id="myBody" onload="MyOnLoad();">
    <iframe id="myIFrame">
    </iframe>
</body>
</html>


код на сайте http://your.local/page1.htm
<script type='text/javascript'>
    var url = window.location.pathname;
    var parentUrl = "http://run.local";
    window.parent.postMessage(url, parentUrl);
</script>


запускаем: http://run.local/index.htm#/page1.htm
Ответить с цитированием
  #38 (permalink)  
Старый 12.12.2010, 22:38
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,432

Сообщение от taraba4 Посмотреть сообщение
Aetae,
Вообщем то да, работает только в ff((
А если top сменить на parent?
Ответить с цитированием
  #39 (permalink)  
Старый 13.12.2010, 03:21
Интересующийся
Отправить личное сообщение для taraba4 Посмотреть профиль Найти все сообщения от taraba4
 
Регистрация: 08.12.2010
Сообщений: 19

dionis,
Огромное спасибо за ваш код! Он полностью работает в самых известных браузерах. Но он предназначен лишь для одной из функций. То есть теперь пользователь зная ссылку может зайти на определенную страницу моего удаленного сайта(и за это огромное спасибо!)

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

Я думал попробовать соединить ваш скрипт, со кодом Aetae, но проблема в том, что его метод работает лишь для браузера фаерфох...

Если нет способов изменить его скрипт так, чтобы он стал работать во всех браузерах, то единственный, по моему мнению, способ получить ссылки страницы груженной во фрем остается:
Получение Url страницы загруженной в iframe
http://javascript.ru/ajax/cross-orig...5:-postmessage

Но так как мой js сейчас прямо скажем убог, возможно есть и другие способы!)
Спасибо всем кто помогает мне!)
Ответить с цитированием
  #40 (permalink)  
Старый 13.12.2010, 05:46
Интересующийся
Отправить личное сообщение для dionis Посмотреть профиль Найти все сообщения от dionis
 
Регистрация: 06.11.2009
Сообщений: 13

ну блин всё обьяснять приходится
код Aetae не подойдёт так как взаимодействовать между доменнами как в ту так и в другую сторону можно только через
postMessage.

а этот код конечно же нужно дабавить на ВСЕ страницы вашего сайта, ну либо в шаблон на сайте или как оно там называется в php.
этот код как раз и меняет хеш родительского сайта.
<script type='text/javascript'>
var url = window.location.pathname;
var parentUrl = "http://run.local";
window.parent.postMessage(url, parentUrl);
</script>

тоесть он должен быть на всех страницах
http://your.local/page1.htm
http://your.local/page2.htm
http://your.local/page3.htm
http://your.local/page4.htm
и тд.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 14:37
Как поместить iframe в угол страницы? xaknik Events/DOM/Window 4 31.07.2010 01:41
получение cookies из iframe Рубик Events/DOM/Window 1 21.09.2009 22:39
Передача значений из iframe в тело страницы z00m Общие вопросы Javascript 7 01.05.2009 16:20
Получение URL и Title Phoenix Общие вопросы Javascript 7 10.03.2008 22:37