А как это сделать, чтобы popup будучи во фрейме загружался поверх содержимого прелендинга? Я пробовал. У меня не получалось.
Пример кода Pop-up окно без стилей прелендинга:
https://jsfiddle.net/h455s2k1/
Пример кода Pop-up окно со стилями прелендинга:
https://jsfiddle.net/yuy1e9u1/
Да нет проблемы, они итак уникальны. Вот только свойства стилей назначенные тегу body все равно наследуются дочерним тегам popup окна. Меняется свойства шрифта, размер окна и кнопка закрытия.
Еще раз большое вам спасибо. Вы мне очень сильно помогли.
var head = document.head || document.getElementsByTagName('head')[0]; var favicon= head.querySelector("link[rel='shortcut icon']").href ;
<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>
Соответственно я не знаю заранее какой путь будет к фавиконке, потому как не знаю какая страница будет загружена.
Подскажите, пожалуйста, возможность делать это без указания пути к фавиконке. Если конечно такая возможность есть.
А можно ли как-то помимо title еще и из фрейма передать favicon? Чтобы на странице, в которой расположен iframe отображалась в браузере favicon сайта из фрейма (если в нем вообще есть favicon.ico). Если да, то могли бы вы webjey подсказать как это сделать? Если кончено это вас не затруднит.
<script language="javascript" src="script.js"></script>
<!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; } },false); })(); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>iframe title here</title> </head> <body> iframe content <script language="JavaScript"> (function() { var json = { command:'getTItle', title: document.title }; parent.postMessage(JSON.stringify(json),'*'); })(); </script> </body> </html>
Огромное спасибо. Теперь все работает во всех браузерах и даже с абсолютными путями.
В Firefox не работает, в том числе и по ссылке. В Chrome и Opera все нормально. В консоли Firefox следующие ошибки http://screencast.com/t/fEXHzdrE065
url указан не файлом, а ссылкой. Так как в ссылке этого фрейма передаются метки (с помощью php) и делается сплит-тест прелендингов.
<? $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>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>main</title> </head> <body> <iframe src="frame.html" frameborder="0"></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) { document.title=e.data; },false); })(); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>iframe title here</title> </head> <body> iframe content <script language="JavaScript"> (function() { var url = location.protocol+'//'+location.hostname+(location.port ? ':'+location.port: ''); parent.postMessage(document.title,url); })(); </script> </body> </html>
Спасибо, но у меня почему-то появляется в тайтле этот код вместо текста:
Да обе страницы на одном и том же сайте. Вот только как его взять и потом еще и разместить содержимое в title страницы, в которой все загружается.