За последние 24 часа нас посетили 17574 программиста и 1723 робота. Сейчас ищут 911 программистов ...

Проверка на frame

Тема в разделе "JavaScript и AJAX", создана пользователем Namer, 29 авг 2010.

  1. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Подскажите, может ли яваскрипт как-то определить и сообщить серверу, что страница открыта во фрейме?
     
  2. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Может :)
    Только смысл на сервер это передавать.
     
  3. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Передавать на сервер надо, так как другим ведь способом никак не сообщишь владельцу ресурса, что например купленный им трафик пытаются имитировать и накрутить.

    Апельсин, ну и тогда в продолжение темы подскажи, а какой функцией или конструкцией яваскрипта это определение делается? Надо бы замутить эту проверку.
     
  4. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Ога, щас, бросился писать.
    Гугли на тему фреймов и js, там шурши и должен найти проверку на количество фреймов на странице.
    Потом прикручиваешь аяксовую конструкцию, которая будет при какомто нужном событии делать проверку выше и отправлять результат на сервер.
     
  5. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Да писать пока не обязательно! :) Для начала спасибо за намек. Теперь зная что возможно и зная примерное направление попробую найти примеры и сваять нечто. Может оно не сложное.

    По этому поводу думаю, что можно и без аякса обойтись, например путем последовательных двух яваскриптов: первый загружается и определяет, а потом подгружает второй (можно даже пустой) с параметром да/нет. Как думашь?
     
  6. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Думаю, что думать тут уже не мне нужно :)
     
  7. tenshi

    tenshi Активный пользователь

    С нами с:
    1 июн 2010
    Сообщения:
    191
    Симпатии:
    0
    почему бы не сделать выпрыгивание из фрейма?

    простейший аяксовый уведомлятор:
    var ajax= new Image
    ajax.src= '/hit.php'
     
  8. Namer

    Namer Активный пользователь

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    В смысле открыть фрейм на полное окно? Не, в моем случае по некоторым причинам это не подходит.

    Что-то действительно сильно просто. Так просто, что аж непонятно, как такая простота сможет сработать :)
     
  9. tenshi

    tenshi Активный пользователь

    С нами с:
    1 июн 2010
    Сообщения:
    191
    Симпатии:
    0
    по каким?

    а что тут не понятного?
     
  10. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Namer
    JavaScript исполняется на стороне клиента, значит отрисовку можно делать без каких-либо запросов к серверу любым способом. Я предпочитаю манипуляции с DOM. Уведомление можно оформить либо полной перерисовкой страницы, как, например, это делает браузер Опера, или добавлением элементов в дерево.

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

    Простенький примерчик:
    [js]var warning = document.createElement("div");
    // Покрасим
    warning.setAttribute(
    "style",
    "display: block; position: absolute; margin: 0 auto; width: 90%;"
    );
    // Повесим к body
    document.body.appendChild(warning);
    [/js]

    Текст можно туда впендюрить с помощью createTextNode.
    Если же не устраивает правильная манипуляция с DOM, то можно просто тупо и насильно использовать innerHTML.
     
  11. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    [js]
    if (typeof window.parent != "undefined") {
    ajaxCall([email='/h@ck0rz.php]'/h@ck0rz.php[/email]');
    }
    [/js]
    что-то типа такого