Как взять title из iframe и передать его странице, в которой он загружается?

12
W
На сайте с 14.11.2012
Offline
41
#11

А можно ли как-то помимо title еще и из фрейма передать favicon? Чтобы на странице, в которой расположен iframe отображалась в браузере favicon сайта из фрейма (если в нем вообще есть favicon.ico). Если да, то могли бы вы webjey подсказать как это сделать? Если кончено это вас не затруднит.

W
На сайте с 09.04.2013
Offline
46
#12
widgin:
А можно ли как-то помимо title еще и из фрейма передать favicon? Чтобы на странице, в которой расположен iframe отображалась в браузере favicon сайта из фрейма (если в нем вообще есть favicon.ico). Если да, то могли бы вы webjey подсказать как это сделать? Если кончено это вас не затруднит.

До фавиконки можно так добраться:


var head = document.head || document.getElementsByTagName('head')[0];
var favicon= head.querySelector("link[rel='shortcut icon']").href ;

Есть еще вот такой трюк - https://plus.google.com/_/favicon?domain=тут_путь_до_лендинга

т.е. чтобы на своей странице отобразить, например,фавикон яндекса можно написать так


<link rel="shortcut icon" href="https://plus.google.com/_/favicon?domain=http://ya.ru/"/>
W
На сайте с 14.11.2012
Offline
41
#13
webjey:
До фавиконки можно так добраться:


var head = document.head || document.getElementsByTagName('head')[0];
var favicon= head.querySelector("link[rel='shortcut icon']").href ;


Есть еще вот такой трюк - https://plus.google.com/_/favicon?domain=тут_путь_до_лендинга

т.е. чтобы на своей странице отобразить, например,фавикон яндекса можно написать так

<link rel="shortcut icon" href="https://plus.google.com/_/favicon?domain=http://ya.ru/"/>

Спасибо. А как-то можно это сделать без указания адреса к иконке в коде? То есть, что бы это работало примерно так же как с title. Как я уже писал ранее, во фрейме сайта делается сплит-тест прелендингов. То есть при каждом новом посещении загружается во фрейме одна из нескольких указанных страниц. И все они загружаются поочередно в цикле с помощью этого кода:

<?

$flag = file_get_contents('tmp');

if($flag == 1){
$url = 'http://site.ru/1/?dp2=pr1&';
file_put_contents('tmp', 2);
}elseif($flag == 2){
$url = 'http://site.ru/2/?dp2=pr2&';
file_put_contents('tmp', 3);
}else{
$url = 'http://site.ru/3/?dp2=pr3&';
file_put_contents('tmp', 1);
}

?>

<iframe id="ifr" src="<?php print $url.$_SERVER['QUERY_STRING'];?>" FRAMEBORDER="0"></iframe>

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

Подскажите, пожалуйста, возможность делать это без указания пути к фавиконке. Если конечно такая возможность есть.

W
На сайте с 09.04.2013
Offline
46
#14

main.html


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>main</title>
</head>
<body>

<iframe src="frame.html" frameborder="0" id="main-content-iframe"></iframe>
<script language="JavaScript">
(function() {

var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
eventer(messageEvent,function(e) {
var data=JSON.parse(e.data);
if (data.command=='getTItle'){
document.title=data.title;
if (data.favicon!==null){
var link = document.createElement('link');
link.type = 'image/x-icon';
link.rel = 'shortcut icon';
link.href = data.favicon;
document.getElementsByTagName('head')[0].appendChild(link);
}
}
},false);
})();

</script>


</body>
</html>

frame.html


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>iframe title here</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
</head>
<body>
iframe content
<script language="JavaScript">
(function() {
var head = document.head || document.getElementsByTagName('head')[0];
var favicon= head.querySelector("link[rel='shortcut icon']").href || null ;
var json = {
command:'getTItle',
title: document.title,
favicon: favicon
};
parent.postMessage(JSON.stringify(json),'*');
})();
</script>
</body>
</html>
W
На сайте с 14.11.2012
Offline
41
#15

Еще раз большое вам спасибо. Вы мне очень сильно помогли.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий