блокирока новых окон

Тема в разделе "PHP", создана пользователем sesh7, 18 мар 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. sesh7

    sesh7 Создатель

    Регистр.:
    4 авг 2008
    Сообщения:
    24
    Симпатии:
    1
    есть ссылка с партнеки, ее нужно запмхнуть в iframe таким образом что бы она не открывала свое окно а загружалось все в iframe.

    Вот ссылка Перейти по ссылке СРАЗУ ГОВОРЮ ССЫЛКА ВЕДЕТ НА САЙТ ДЛЯ ВЗРОСЛЫХ, ТАК ЧТО БЕЗ ОБИД...
     
  2. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    если будешь вызывать из iframe, то могут закрыть твою партнерку. При загрузке их сайта через iframe не будет передаваться referer (эту задачу надо решать отдельно).
     
  3. sesh7

    sesh7 Создатель

    Регистр.:
    4 авг 2008
    Сообщения:
    24
    Симпатии:
    1
    вот в том и дело что рефер передается (смотрел в статистике), но мне совсем не нужно чтобы iframe открывал новое окно. как:thenks:???
     
  4. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    ссылка редиректит каждый раз на разные сайты, на сайтах используются разные техники генерации попап-окон. Можно попробовать такой вариант: предварительно сгрузить содержимое, предоставляемое ссылкой, на лету заменить заглушками возможные места вызовов попап-окон, затем вставить в свой сайт.

    Код:
    <div id='mydiv'></div>
    <script type="text/javascript">
    grab_url('http://go2link.ru/?id=43243 ', "mydiv");
    </script>
    grab_url выполнит HTTP GET запрос, загрузит содержимое ссылки и вставит в тег mydiv. Вот функция grab_url:

    Код:
    function grab_url(xUrl,xId) {
      var xmlhttp = false;
      var url_content = "";
      /*@cc_on @*/
      /*@if (@_jscript_version >= 5)
      // JScript gives us Conditional compilation, we can cope with old IE versions.
      // and security blocked creation of the objects.
      try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
          try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (E) {
            xmlhttp = false;
          }
       }
      /*@end @*/
      if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
        xmlhttp = new XMLHttpRequest();
      }
      xmlhttp.open("GET", xUrl,true);
      xmlhttp.onreadystatechange=function() {
         if (xmlhttp.readyState==4) {
            url_content = xmlhttp.responseText;
            // здесь делаем замену содержимого, чтобы отключить рекламу
            //  ......
            document.getElementById(xId).innerHTML = url_content;
         }
      }
      xmlhttp.send(null);
    }
     
  5. sesh7

    sesh7 Создатель

    Регистр.:
    4 авг 2008
    Сообщения:
    24
    Симпатии:
    1
    если не сложно то опиши поподробней, я только начинающий..
     
  6. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    я потестил такой вариант, состоит из двух файлов, которые надо положить в один каталог: index.html и frame.html

    index.html:
    Код:
    <html>
    <body>
    <script type="text/javascript"> 
    var xmlHttp = createXmlHttpRequestObject(); 
    var xId = "mydiv";
    
    function createXmlHttpRequestObject() 
    { 
      var xmlHttp; 
      xmlHttp = false;
      try { 
        xmlHttp = new XMLHttpRequest(); 
    //    alert("xmlHttp is created as XMLHttpRequest");
      } 
      catch(e){ 
        var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0', 
                                        'MSXML2.XMLHTTP.5.0', 
                                        'MSXML2.XMLHTTP.4.0', 
                                        'MSXML2.XMLHTTP.3.0', 
                                        'MSXML2.XMLHTTP', 
                                        'Microsoft.XMLHTTP'); 
        for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++){ 
          try{ 
            xmlHttp = new ActiveXObject(XmlHttpVersions[i]); 
    //        alert("xmlHttp is created as ActiveXObject "+XmlHttpVersions[i]);
          } 
          catch(e) {} 
        } 
      }
      if (!xmlHttp) alert('Ваш броузер не поддерживает асинхронные запросы !\n Попробуйте сменить броузер\n Рекомендуем использовать Microsoft Internet Exploler'); 
      else { 
        return xmlHttp;  
      } 
    } 
    
    function handleRequestStateChange()
    { 
      if(xmlHttp.readyState == 4) { 
        if(xmlHttp.status == 200){ 
          try{ 
            handleServerResponse(); 
          } 
          catch(e) { 
            alert("Ошибка чтения ответа"+ e.toString()); 
          } 
        } else { 
          alert("Возникли проблемы при получении данных:\n"+ xmlHttp.statusText+"\nПопробуйте сменить броузер\n Рекомендуем использовать Microsoft Internet Exploler"); 
        } 
      } 
    } 
    
    function handleServerResponse() { 
      response = xmlHttp.responseText;
      response.replace(/confirm2.js/, "x.js");
      document.getElementById(xId).innerHTML = response;
    } 
    
    function loadHTML(xUrl)
    { 
      if(xmlHttp){ 
        try{ 
    //      xmlHttp.open("POST", xUrl, true); 
          xmlHttp.open("GET", xUrl, true); 
    //      xmlHttp.setRequestHeader("Method", "POST server.php HTTP/1.1"); 
    //      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
            xmlHttp.onreadystatechange = handleRequestStateChange; 
    //        xmlHttp.send('us=0'); 
            xmlHttp.send(null); 
        } 
        catch (e){ 
          alert("Невозможно соединится с сервером: "+xUrl + " Error: "+e.toString()); 
        } 
      } 
    } 
    </script> 
    <div id='mydiv'></div>
    <script type="text/javascript">
    //loadHTML('http://go2link.ru/?id=43243');
    loadHTML('frame.html');
    </script>
    </body>
    </html>
    frame.html:
    Код:
    <html>
    <body>
    <iframe src="http://go2link.ru/?id=43243" width="100" height="100" align="left">
    </iframe>
    </body>
    </html>
    Один из сайтов, на который перенаправляет твоя ссылка и который выкидывает на экран окна с предложениями к пользователю:
    adstopper.ru/promo2/?id=2
    на странице сайта есть строка:
    Код:
    <script type="text/javascript" src="/js/confirm2.js"></script>
    здесь подгружается js-файл с яваскриптом, в котором присутствуют функции вывода запросов к пользователю на экран. Давим загрузку этого js-файла путем замены на несуществующий js. Это делаем в index.html следующей строкой:

    Код:
    response.replace(/confirm2.js/, "x.js");
    по аналогии просматриваем все файлы, на которые редиректит ссылка, и ищем лекарство против попап-окон. Ну что, подробнее или будешь искать другой способ? :yahoo:
     
    sesh7 нравится это.
  7. sesh7

    sesh7 Создатель

    Регистр.:
    4 авг 2008
    Сообщения:
    24
    Симпатии:
    1
    да очень помог!!! Слушай, а если ты такой умный то не мог бы подсказать гду прячутся ссылки от так.ру???:yahoo::yahoo::yahoo:
     
  8. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    Напомни, где вылезают эти ссылки.:nezn:
     
  9. sesh7

    sesh7 Создатель

    Регистр.:
    4 авг 2008
    Сообщения:
    24
    Симпатии:
    1
    ну вот например на Перейти по ссылке (чей сайт не знаю, просто ради примера) справа и слева реклама от ВМЛИНК и ТАК.РУ, при просмотре исходного кода ссылок не видно, а где они прячутся???:nezn::nezn::nezn:
     
  10. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    вот эти ссылки:

    Код:
    <a href=rightadclick.php?id=1&PHPSESSID=12b2b0d45aff58e0e4c4e047fe7a0e91 target=_blank><img src="http://goldensurf.ru/banners/ban2.gif" width=160 height=160 alt="Отличный автосерфинг"></a>
    <a href=rightadclick.php?id=13&PHPSESSID=12b2b0d45aff58e0e4c4e047fe7a0e91 target=_blank><img src="http://banners.takru.com/10.jpg" width=160 height=180 alt=""></a>
     
    sesh7 нравится это.
Статус темы:
Закрыта.