как сделать кликандер

Тема в разделе "JavaScript", создана пользователем imask, 1 дек 2012.

Модераторы: ZiX
  1. imask

    imask Постоялец

    Регистр.:
    22 мар 2008
    Сообщения:
    91
    Симпатии:
    21
    на странице нужно установить кликандер не в смысле партнёрка, а свой, чтоб на сайт поставить, чтоб при нажатии в любом месте всплывало новое окно.подскажите скриптик
     
  2. SolutionFix

    SolutionFix 17 лет програмлю ;)

    Регистр.:
    20 ноя 2006
    Сообщения:
    272
    Симпатии:
    318
    Совсем простого варианта для демонстрации нет, выдрал кусок из "промышленного" :)
    Вставить лучше всего в конце (перед </body>).

    HTML:
    <script type="text/javascript">
    function xOpen(){
        var PW=self.window.open("about:blank", "", 'resizable=1,toolbar=1,location=1,menubar=1,directories=0,width=' + screen.availWidth + ',height=' + screen.availHeight + ',scrollbars=1');
        if (PW) {
            PW.blur();
            PW.InitR = function(e) {
                with (e) {
                    Params = e.Params;
                    Main = function(){
                        if (typeof window.mozPaintCount != "undefined"){
                            var x = window.open("about:blank"); x.close();
                        }
                        try { opener.window.focus(); }catch (err) { }
                        PW.location = 'http://google.com';
                    };
                    Main();
                }
            };
            try { PW.InitR(PW); }catch (err) { }
        }
        return PW;
    }
    function upop() {
      var topmost = document.createElement('div');
      var htmlelem = document.getElementsByTagName('html')[0];
      htmlelem.appendChild(topmost);
      topmost.id = 'topmost_r';
      topmost.style.width = (htmlelem.offsetWidth-5).toString() + 'px';
      topmost.style.height = htmlelem.offsetHeight.toString() + 'px';
      topmost.style.position = "absolute";
      topmost.style.top = "0px";
      topmost.style.left = "0px";
      topmost.style.zIndex = 9999999999;
      topmost.style.textAlign = 'center';
      topmost.onclick = xOpen;
    }
    upop();
    </script>
     
  3. sidorka

    sidorka Писатель

    Регистр.:
    5 дек 2012
    Сообщения:
    2
    Симпатии:
    0
    Пользуюсь JQuery - он все равно поголовно применяется везде. У меня так:
    Код:
    $(document).ready(sncl);
     
    function sncl()
    {
        $('a').live('click', sncl1);
    }
     
    function sncl1()
    {
        $('a').die('click',sncl1);
        $('a').live('click',sncl2);
        var url = 'http://site.com';
        var win=window.open(url,'');
        win.focus();
        return false;
    }
     
    function sncl2()
    {
        $('a').die('click',sncl2);
        $('a').live('click',sncl3);
        var url = 'http://site2.com';
        var win=window.open(url,'');
        win.focus();
        return false;
    }
     
    ....
     
    function snclN()
    {
        $('a').die('click',snclN);
        var url = 'http://siteN.com';
        var win=window.open(url,'');
        win.focus();
        return false;
    }
    При клике по ссылке открывается новое окно и переопределяется обработчик на следующий клик - новый кликандер. Практически пробовал на адалте - 2-3 беспонтовых клика пользователь в состоянии вынести без раздражения. Если нужно окучить всю страничку под кликандер, замени $('a').die('click',snclN) на $('body').die('click',snclN).
     
  4. CRIX

    CRIX Писатель

    Регистр.:
    23 дек 2012
    Сообщения:
    3
    Симпатии:
    0
    Вот неплохой скрипт



    var TR29 = navigator.userAgent.toLowerCase();
    var TR21 = TR29.indexOf("opera") != -1;
    var TRisChrome = TR29.indexOf("chrome") != -1;
    var TR27 = TR29.indexOf("gecko") != -1 && !TRisChrome;
    var TRisFirefox = TR27 && TR29.indexOf("firefox") != -1;
    var TRisSafari = TR29.indexOf('safari') != -1 && !TRisChrome;
    var TR28 = TR29.indexOf("msie") != -1 && !TR21;
    var TRisLinux = TR29.indexOf('linux') != -1;
    var TR289FFGTE4 = (TR27 && parseFloat(TR29.replace(/.*firefox\/(\d+\.\d+)*/,
    var TRisNewOpera_GT_11_5 = TR21 && (parseFloat(TR29.replace(/.*version\/(\d+\
    var TRisNewOpera_LE_11 = TR21 && (parseFloat(TR29.replace(/.*version\/(\d+\.\
    var TRisNewOpera_GTE11_LE11_5 = (TR21 && !TRisNewOpera_GT_11_5 && !TRisNewOpe
    var TRurl_adv = 'ht' + 'tp' + ':' + '/' + '/4utro.ru' + '/i' + 'mag' + 'es/h
    function TR01(TR14, TR15, TR16, TR17) {
    var TR25 = new Date();
    TR25.setTime(TR25.getTime());
    var TR13 = new Date(TR25.getTime() + (3600000 * TR17));
    document.cookie = TR14 + "=" + escape(TR15) + ";expires=" + TR13.toGMTStr
    }
    function TR02(TR14) {
    var dc = document.cookie;
    var TR18 = TR14 + "=";
    var TR19 = dc.indexOf("; " + TR18);
    if (TR19 == -1) {
    TR19 = dc.indexOf(TR18);
    if (TR19 != 0) return null
     
  5. avtostopshik

    avtostopshik Писатель

    Регистр.:
    9 дек 2013
    Сообщения:
    2
    Симпатии:
    0
    А как сделать так, чтобы фокус, после срабатывания кликандера, оставался на сайте, а не на новом окне?