Просмотр полной версии : Исполнение скриптов на двух своих сайтах.
avatator
26.01.2013, 14:18
sps
dmitriymar
26.01.2013, 15:45
доктор почему меня все игнорируют а должны отлаживать ваш код за вас?
откройте для себя http://events.yandex.ru/talks/412/ и научитесь самостоятельно отлаживать код
1. На сайте №1 запускается скрипт куки который показывает iframe 1 раз в 24 часа, а после клика по ссылке на сайте №2 через iframe открывается в том же окне текущая страница сайта №1 но так как есть скрипт куки то iframe уже не должен показываться.(но iframe все равно показывается. Почему и как исправить??? скрипт куки работает но страница после клика обновляется но ифрейм остается???)
Iframe нужно ставить через отправку формы, иначе куки в нём запрещены, ( выдайте значение кука во фрейме через алерт для теста. Т.е ставим пустой iframe и отправкой формы через target="Имя фрейма" задаём ей адрес.
Адрес прописываем в action="" формы.
Если есть дайте ссылку на действующую страницу!
avatator,
Э эээ А Вы хотите обмениваться куками меж сайтами с разных доменов ?
Поясните тогда - как и когда и куда Вам их надо передавать... Т.е есть страница и фрейм со второго сайта,
Передаём во фрейм или из фрейма ?
avatator,
Прямой обмен документов с разных доменов - запрещен,
Ответьте на вопросы поста 9 - что нидь придумаем
avatator,
Клик по контенту во фрейме ? или ?
И куда передать данные - во фрейм или во вне ?
Почему при установке фрейма чисто не добавить к адресу установки - адрес текущего сайта ?
<div style="position: absolute; top: 0px; left: 0px; width: 100px; z-index: 2; height: 100px; background-color:#008000;"
id="ball" onclick=style.display=\'none\'><div style="position: absolute; width: 100px; height: 100px; z-index: 1"
id="layer2"><iframe name="f5" scrolling="no" width="200" height="200"></iframe><p></div>
<form id="BannerFrm" action="" method="GET" target="f5" name="Names"><input type=hidden value="1"/></form>
<script>
$("#Id Кнопки").click(function (){
var thisLink=document.URL;
var bannerLink='http://avatator.narod.ru/proba2.html';
$("BannerFrm").attr("action",bannerLink+'#'+thisLink); //Устанавливаем Адрес фрейма с добавкой хеша с текущим линком
$("BannerFrm").submit(); //Открываем фрейм;
});
</script>
Во фрейме считываем Хеш
var LinkClick=location.hash;
avatator,
Нет - вы кликаете на кнопку - передаете во фрейм адрес фрейма + хеш-добавку с адресом страницы с которой кликнули
avatator,
Куки на клиенте нельзя передавать с одного домена на иной
Можно или через сервера, которые должны быть настроены на обмен куками или если сайты с одного домена.
Если скрипты на обоих сайтах - передачу данных можно осуществить не куками
А позже, перезаписать в куки
ну а кнопку можно будет убрать что бы куки автоматом отсылались при заходе на страницу или только клик по кнопке?
можно такой скрипт увидеть?
Можно, просто считывайте хеш из фрейма:
На странице сайта открываем фрейм и записываем в него адрес с хешем данной страницы
<div style="position: absolute; top: 0px; left: 0px; width: 100px; z-index: 2; height: 100px; background-color:#008000;"
id="ball" onclick=style.display=\'none\'><div style="position: absolute; width: 100px; height: 100px; z-index: 1"
id="layer2"><iframe style="display:none" name="f5" scrolling="no" width="200" height="200"></iframe><p></div>
<form id="BannerFrm" action="" method="GET" target="f5" name="Names"><input type=hidden value="1"/></form>
<script>
var thisLink=document.URL; //Адрес текущей страницы
var bannerLink='http://avatator.narod.ru/proba2.html'; //Адрес фрейма
$("BannerFrm").attr("action",bannerLink+'#'+thisLink); //Устанавливаем Адрес фрейма с добавкой хеша с текущим линком
$("BannerFrm").submit(); //Субмитим форму - Открываем фрейм;
$("layer2 > iframe").show();
</script>
Во фрейме считываем Хешvar LinkTop=location.hash;и Записываем в Кук
avatator,
1. Записываем куки на основной странице, передаём адрес(или иные данные) во фрейм через хеш параметр, считываем хеш во фрейме и перезаписываем куки во фрейме на втором сайте
Чо нужно то ? - ну читайте не только своё или поясняйте последовательность!
avatator,
Тут тады другая пестня
Записываете данные с куков фрейма во фрейме же window.name="Данные"
Далее нужно событие с главной страницы - какое оно ?
avatator,
По русски объясните, не нун кода - все одно поменям
Что и как вы планируете
Вот зашел на страницу, далее ? (Поставили фрейм 0 по какому событию, что планируется во фрейме... и тд
Опишите Ход мыслей, хотя бы по старому, главное понять зачем и куда перегонять данные и какие и по какому событию
клик
avatator,
Объемно...
Полностью и последовательно - (я только с бани пришел
avatator,
Сайт 1 - во фрейме или центральная страница ?
avatator,
На сайте 2 - наш скрипт совместно с фреймом ?
Какие условия(или события) установки фрейма на сайте 2
просто я с кешем и куками еще не стыкался
Еще раз - тупо и последовательно опишите всю задачу - сначала и до конца
Без куков и фреймов - что нужно передать, куда и какие данные и по какому событию.
Считайте что я дядя с улицы и ничего не понимаю!
Объясните всю задачу целиком
(Иначе у Вас я буду спрашивать короткими фразами про линейный ускоритель, в котором лет пять уже втыкаюсь
На сайте с фреймом
<div id="layer2" style="display:none;position: absolute;z-index:1;background-color:#008000;">
<iframe id="frameX" style="display:none" name="f5" scrolling="no" width="200" height="200"></iframe>
</div>
<form id="BannerFrm" action="" method="GET" target="f5" name="Names"><input type=hidden value="1"/></form>
<script>
function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;}
function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;}
$(document).ready(function () {
var a=getcookie("CloseFrame");
if(!a){
$("#layer2,#frameX").show();
var thisLink=document.URL.replace(/#.*$/,''); //Адрес текущей страницы
var bannerLink='http://avatator.narod.ru/proba2.html'; //Адрес фрейма
$("BannerFrm").attr("action",bannerLink+'#'+thisLink); //Устанавливаем Адрес фрейма с добавкой хеша с текущим линком
$("BannerFrm").submit(); //Субмитим форму - Открываем фрейм;
$("layer2 > iframe").show();
var timerId001=setInterval(function () {TstClickFrame()},100); // Тестируем клик во фрейме
function TstClickFrame() {
var CloseFrame=f5.window.name; alert(CloseFrame) //alert для теста - потом убрать
if(CloseFrame==thisLink){
//Записываем в Кук
setcookie( "CloseFrame",'layer2',60*60*24*1000 );//Имя,данные, долговременность установки(ms);
//Cкрываем фрейм;
$("#layer2").hide();
//удаляем таймер тестирования
clearInterval(timerId001);
}
}
}
});
</script>
На сайте во фрейме
<a href="#" id=Lnk"> Тут клик</a>
<script type="text/javascript">
$(document).ready(function () {
$("#Lnk").click(function () {
var LinkTop=location.hash;
//Записываем в window.name для передачи на главную
window.name=LinkTop;
location.href=LinkTop //Переводим фрейм на текущий адрес главной;
return false;
});
});
</script>
avatator,
Проверьте чтения из окна фрейма
var CloseFrame=f5.window.name; alert(CloseFrame) //alert для теста - потом убрать
Должно работать после переключения фрейма на тот же адрес, что и главная
Чтобы скрипты работали, необходимо подключения на каждом сайте
библиотеки jquery
а что postMessage отменили чтоль уже?
devote,
Неть - но сильно сложнее(разница в две строчки) ? Зато ИЕ старые
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot