[JavaScript, AJAX] Задай вопрос, получи ответ

Discussion in 'PHP' started by banned, 9 Jun 2007.

Thread Status:
Not open for further replies.
  1. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    376
    Reputations:
    460
    А где хранить даные, когда мало данных, то можно и в текстовом виде, а кады их будет больше 1k or 10k, то уже не как...:)
     
    1 person likes this.
  2. Alekzzzander

    Alekzzzander Elder - Старейшина

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    вопрос туповат но...как написать скрипт на java что ыб он показывал время в формате чч.мм.сс в реальном времени?
     
  3. Ю_ЗвЕРь

    Ю_ЗвЕРь Member

    Joined:
    23 Nov 2006
    Messages:
    98
    Likes Received:
    28
    Reputations:
    1
    Alekzzzander,

    http://woweb.ru/load/104-1-0-587
    http://woweb.ru/load/104-1-0-602
    http://woweb.ru/load/104-1-0-602


    http://easywebscripts.net/ajax/ajax_clock.php

    Кажется подойдет что-нибудь .)
     
    #203 Ю_ЗвЕРь, 20 Dec 2007
    Last edited: 20 Dec 2007
  4. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
  5. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    у мня на сайте даж стоит.Разные часовые поясы.
    index.html
    PHP:
    <span id="liveclock" class="clock"></span>
     <
    script language="JavaScript">
     <!--
     var 
    Digital=new Date()
     var 
    hours=Digital.getHours()
     var 
    minutes=Digital.getMinutes()
     var 
    hoursdif=hours-15
     
    var minutesdif=minutes-24
     
    -->
     
    </script>
     <script type="text/javascript" language="JavaScript" src="clock.js"></script>
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
    <td valign="top" style="width:186px;padding:0 0 0 10px;">
    clock.js
    PHP:
    <! --
    function 
    clock(){
    if (!
    document.layers&&!document.all&&!document.getElementById)
    return

     var 
    Digital=new Date()
     var 
    hours=Digital.getHours()
     var 
    minutes=Digital.getMinutes()
     var 
    seconds=Digital.getSeconds()
     
     
    hours=hours-hoursdif
     minutes
    =minutes-minutesdif
     
    if (minutes>60){
     
    minutes=minutes-60;
     
    hours=hours+
     
    }
     
     if (
    minutes<=9)
     
    minutes="0"+minutes
     
    if (seconds<=9)
     
    seconds="0"+seconds

     hours2
    =hours+2;//Kyiv-L'viv
     
    if (hours2>23)
     
    hours2=hours2-24;
     if (
    hours2<10)
     
    hours2="0"+hours2
     
     hours3
    =hours+1;//Warsaw-Paris-Berlin
     
    if (hours3>23)
     
    hours3=hours3-24;
     if (
    hours3<10)
     
    hours3="0"+hours3
     
     
     hours4
    =hours+19;//Toronto
     
    if (hours4>23)
     
    hours4=hours4-24;
     if (
    hours4<10)
     
    hours4="0"+hours4
     
     hours5
    =hours+18;//Chicago
     
    if (hours5>23)
     
    hours5=hours5-24;
     if (
    hours5<10)
     
    hours5="0"+hours5
     
     hours6
    =hours+10;//Sydney
     
    if (hours6>23)
     
    hours6=hours6-24;
     if (
    hours6<10)
     
    hours6="0"+hours6;
     
     if (
    hours<10)
     
    hours="0"+hours;
     

    myclock"Київ, Львів:<font color='blue'>"+hours2+":"+minutes+"</font>&nbsp;&nbsp;&nbsp;Берлін:<font color='blue'>"+hours3+":"+minutes+"</font>&nbsp;&nbsp;&nbsp;Лондон:<font color='blue'>"+hours+":"+minutes+"</font>&nbsp;&nbsp;&nbsp;&nbsp;Торонто:<font color='blue'>"+hours4+":"+minutes+"</font>&nbsp;&nbsp;&nbsp;&nbsp;Чикаґо:<font color='blue'>"+hours5+":"+minutes+"</font>&nbsp;&nbsp;&nbsp;&nbsp;Сідней:<font color='blue'>"+hours6+":"+minutes+"</font> &nbsp;&nbsp;:: <font color='blue'>"+seconds+"</font>"
    if (document.layers){
    document.layers.liveclock.document.write(myclock)
    document.layers.liveclock.document.close()
    }
    else if (
    document.all)
    liveclock.innerHTML=myclock
    else if (document.getElementById)
    document.getElementById("liveclock").innerHTML=myclock
    setTimeout
    ("clock()",1000)
    }

    clock();
    //-->
     
  6. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    каким образомс помощью джава скрипт поменять фон заданый через CSS

    есть кнопка:
    <input type=button style="background: url('img1.jpg')" value=abc>
    нужно чтоб при наведении фоном кнопки становилась картинка img2.jpg
     
  7. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    В простом случае:
    PHP:
    <input type=button style="background: url('img1.jpg')" value=abc id="mybutton">

    <
    script>
    var 
    btn document.getElementById('mybutton');
    btn.onMouseOver = function()
    {
        
    btn.style.backgroundImage 'img2.jpg';
    }
    btn.onMouseOut = function()
    {
        
    btn.style.backgroundImage 'img1.jpg';
    }
    </script>
    Но в этом случае картинка не кешируется, а подгружается каждый раз.

    Лучший вариант: сделать две картинки одной
    ---------
    | img1 |
    ---------
    | img2 |
    ---------
    с учетом того, что размеры исходных картинок одинаковы.

    После чего в стилях кнопки прописываешь ширину(равна ширине фона) и высоту (половина высоты получившейся картинки):

    PHP:
    <style>
    #mybutton
    {
    height20px;
    width100px;
    background#fff url('mybigimage.gif') no-repeat;
    background-positiontop left;
    }
    </
    style>

    <
    input type=button value=abc id="mybutton">

    <
    script>
    var 
    btn document.getElementById('mybutton');
    btn.onMouseOver = function()
    {
        
    btn.style.backgroundPosition 'bottom left';
    }
    btn.onMouseOut = function()
    {
        
    btn.style.backgroundPosition 'top left';
    }
    </script>

    В этом случае катринка одна, загружается один раз, просто "передвигается" под кнопкой => время ни на запрос к кешу, ни к серверу не тратится => работает быстро и не напрягает юзверей (особенно Оперы с всплывающей статусной строкой)

    Пример более сложного использования - mootools.net - вкладки вверху страницы и попроще - лого внизу страницы (там же)
     
  8. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    PHP:
    <a href="http://winchanger.narod.ru/" onmouseover="document.cat1.src='../32.jpg';" onmouseout="document.cat1.src='../18.jpg';"><img src="../18.jpg" name="cat1"></a>
    <
    hr>
    Можна попробовать из етого сделать
    (с) учебник
     
  9. Neovild

    Neovild Elder - Старейшина

    Joined:
    18 Dec 2007
    Messages:
    28
    Likes Received:
    22
    Reputations:
    0
    Можно ли и если да, то как чтобы на сайте проигрывался 3gp ролик?
     
  10. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    по-моему можно.Если в юзверя стоит Quick Time (или как его там???) то подищи обычный скрипт плеера
     
  11. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    Code:
    <input type=\"button\" value=\"Зайти\" onclick=\"window.open('firth.php','firth','top=0, left=0,menubar=no, scrollbars=no, width='+screen.width+', height='+screen.height);\">
    
    как сделать чтобы при узнавании расширения, новое окно не закрывало пуск=(
     
  12. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    ХЗ каким, но похоже (как мне показалось) на сам алгоритм шифрования...
     
  13. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    2XopoIII:

    top=1
     
    1 person likes this.
  14. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Расшифровал, но стоит проверить код - он может не работать, т.к.
    1) Форум разбивает длинные сплошные строки пробелами
    2) В процессе приведения к более читаемому виду скрипт мог побиться
    :
    Code:
    function showBusyLayer(){
    	var a=document.getElementById("busy_layer");
    	if(window.innerHeight&&window.scrollMaxY){
    		yScroll=window.innerHeight+window.scrollMaxY;
    		var b=document.documentElement;
    		var c=(b&&b.clientHeight)||document.body.clientHeight||window.innerHeight||self.innerHeight;
    		yScroll-=(window.innerHeight-c)
    	}
    	else if(document.body.scrollHeight>document.body.offsetHeight||document.body.scrollWidth>document.body.offsetWidth){
    		yScroll=document.body.scrollHeight
    	}
    	else{
    		yScroll=document.body.offsetHeight
    	}
    	if(a!=null){
    		a.style.visibility="visible";
    		a.style.height=yScroll
    	}
    };
    function hideBusyLayer(){
    	var a=document.getElementById("busy_layer");
    	if(a!=null){
    		a.style.visibility="hidden";
    		a.style.height="0px"
    	}
    };
    function _get_obj_toppos(a){
    	var b=a.offsetTop;
    	while((a=a.offsetParent)!=null){
    		b+=a.offsetTop
    	}
    	return b
    };
    function center_div(){
    	this.divname='';
    	this.divobj=''
    };
    center_div.prototype.clear_div=function(){
    	try{
    		if(!this.divobj){
    			return
    		}
    		else{
    			this.divobj.style.display='none'
    		}
    	}
    	catch(e){
    		return
    	}
    };
    center_div.prototype.Ywindow=function(){
    	var a=0;
    	if(document.documentElement&&document.documentElement.scrollTop){
    		a=document.documentElement.scrollTop
    	}
    	else if(document.body&&document.body.scrollTop){
    		a=document.body.scrollTop
    	}
    	else if(window.pageYOffset){
    		a=window.pageYOffset
    	}
    	else if(window.scrollY){
    		a=window.scrollY
    	}
    	return a
    };
    center_div.prototype.move_div=function(){
    	try{
    		this.divobj=document.getElementById(this.divname)
    	}
    	catch(e){
    		return
    	}
    	var a=0;
    	var b=0;
    	if(typeof(window.innerWidth)=='number'){
    		a=window.innerWidth;
    		b=window.innerHeight
    	}
    	else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){
    		a=document.documentElement.clientWidth;
    		b=document.documentElement.clientHeight
    	}
    	else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){
    		a=document.body.clientWidth;
    		b=document.body.clientHeight
    	}
    	this.divobj.style.position='absolute';
    	this.divobj.style.display='block';
    	this.divobj.style.zIndex=99;
    	var c=parseInt(this.divobj.style.Height);
    	var d=parseInt(this.divobj.style.Width);
    	c=c?c:50;
    	d=d?d:200;
    	var f=this.Ywindow();
    	var g=(a-d)/2;
    	var h=(b-c)/2+f;
    	g=(g<0)?0:g;
    	h=(h<0)?0:h;
    	this.divobj.style.left=g+"px";
    	this.divobj.style.top=h+"px"
    };
    function dle_ajax(p){
    	this.AjaxFailedAlert="AJAX not supported.\n";
    	this.requestFile=p;
    	this.method="POST";
    	this.URLString="";
    	this.encodeURIString=true;
    	this.execute=false;
    	this.add_html=false;
    	this.loading_fired=0;
    	this.centerdiv=null;
    	this.onLoading=function(){
    	};
    	this.onLoaded=function(){
    	};
    	this.onInteractive=function(){
    	};
    	this.onCompletion=function(){
    	};
    	this.onShow=function(a){
    		if(!this.loading_fired){
    			this.loading_fired=1;
    			if(a){
    				document.getElementById('loading-layer-text').innerHTML=a
    			}
    			this.centerdiv=new center_div();
    			this.centerdiv.divname='loading-layer';
    			this.centerdiv.move_div()
    		}
    		return
    	};
    	this.onHide=function(){
    		try{
    			if(this.centerdiv&&this.centerdiv.divobj){
    				this.centerdiv.clear_div()
    			}
    		}
    		catch(e){
    		}
    		this.loading_fired=0;
    		return
    	};
    	this.createAJAX=function(){
    		try{
    			this.xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
    		}
    		catch(e){
    			try{
    				this.xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
    			}
    			catch(err){
    				this.xmlhttp=null
    			}
    		}
    		if(!this.xmlhttp&&typeof XMLHttpRequest!="undefined")this.xmlhttp=new XMLHttpRequest();
    		if(!this.xmlhttp){
    			this.failed=true
    		}
    	};
    	this.setVar=function(a,b){
    		if(this.URLString.length<3){
    			this.URLString=a+"="+b
    		}
    		else{
    			this.URLString+="&"+a+"="+b
    		}
    	};
    	this.encVar=function(a,b){
    		var c=encodeURIComponent(a)+"="+encodeURIComponent(b);
    		return c
    	};
    	this.encodeURLString=function(a){
    		varArray=a.split('&');
    		for(i=0;i<varArray.length;i++){
    			urlVars=varArray[i].split('=');
    			if(urlVars[0].indexOf('amp;')!=-1){
    				urlVars[0]=urlVars[0].substring(4)
    			}
    			varArray[i]=this.encVar(urlVars[0],urlVars[1])
    		}
    		return varArray.join('&')
    	};
    	this.encodeVAR=function(a){
    		a=a.toString();
    		var b=a.match(/[\x90-\xFF]/g);
    		if(b){
    			for(var i=0;i<i.length;i++){
    				a=a.replace(b[i],'%u00'+(b[i].charCodeAt(0)&0xFF).toString(16).toUpperCase())
    			}
    		}
    		return escape(a).replace(/\+/g,"%2B")
    	};
    	this.runResponse=function(){
    		var a=new Date;
    		var b=false;
    		a=a.getTime();
    		var c=/<script.*?>(.|[\r\n])*?<\/script>/ig;
    		var d=c.exec(this.response);
    		if(d!=null){
    			var e=new Array(d.shift());
    			var b=true;
    			while(d){
    				d=c.exec(this.response);
    				if(d!=null)e.push(d.shift())
    			}
    			for(var i=0;i<e.length;i++){
    				this.response=this.response.replace(e[i],'<span id="'+a+i+'" style="display:none;"></span>')
    			}
    		}
    		if(this.add_html){
    			this.elementObj.innerHTML+=this.response
    		}
    		else{
    			this.elementObj.innerHTML=this.response
    		}
    		if(b){
    			var f=/<script.*?>((.|[\r\n])*?)<\/script>/ig;
    			for(i=0;i<e.length;i++){
    				var g=document.getElementById(a+''+i);
    				var h=g.parentNode;
    				h.removeChild(g);
    				f.lastIndex=0;
    				var k=f.exec(e[i]);
    				var l=h.appendChild(document.createElement('script'));
    				l.text=k[1];
    				var m=e[i].substring(e[i].indexOf(' ',0),e[i].indexOf('>',0));
    				var n=m.split(' ');
    				if(n.length>1){
    					for(var j=0;j<n.length;j++){
    						if(n[j].length>0){
    							var o=n[j].split('=');
    							o[1]=o[1].substr(1,(o[1].length-2));
    							l.setAttribute(o[0],o[1])
    						}
    					}
    				}
    			}
    		}
    	};
    	this.sendAJAX=function(b){
    		this.responseStatus=new Array(2);
    		if(this.failed&&this.AjaxFailedAlert){
    			alert(this.AjaxFailedAlert)
    		}
    		else{
    			if(b){
    				if(this.URLString.length){
    					this.URLString=this.URLString+"&"+b
    				}
    				else{
    					this.URLString=b
    				}
    			}
    			if(this.encodeURIString){
    				var c=new Date().getTime();
    				this.URLString=this.encodeURLString(this.URLString);
    				this.setVar("rndval",c)
    			}
    			if(this.element){
    				this.elementObj=document.getElementById(this.element)
    			}
    			if(this.xmlhttp){
    				var d=this;
    				if(this.method=="GET"){
    					var f=this.requestFile+"?"+this.URLString;
    					this.xmlhttp.open(this.method,f,true)
    				}
    				else{
    					this.xmlhttp.open(this.method,this.requestFile,true)
    				}
    				if(this.method=="POST"){
    					try{
    						this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
    					}
    					catch(e){
    					}
    				}
    				this.xmlhttp.send(this.URLString);
    				this.xmlhttp.onreadystatechange=function(){
    					switch(d.xmlhttp.readyState){
    						case 1:d.onLoading();
    						break;
    						case 2:d.onLoaded();
    						break;
    						case 3:d.onInteractive();
    						break;
    						case 4:d.response=d.xmlhttp.responseText;
    						d.responseXML=d.xmlhttp.responseXML;
    						d.responseStatus[0]=d.xmlhttp.status;
    						d.responseStatus[1]=d.xmlhttp.statusText;
    						d.onHide();
    						d.onCompletion();
    						if(d.elementObj){
    							var a=d.elementObj.nodeName;
    							a=a.toLowerCase();
    							if(a=="input"||a=="select"||a=="option"||a=="textarea"){
    								if(d.response=='error'){
    									alert('Доступ отклонен')
    								}
    								else{
    									if(d.add_html){
    										d.elementObj.value+=d.response
    									}
    									else{
    										d.elementObj.value=d.response
    									}
    								}
    							}
    							else{
    								if(d.response=='error'){
    									alert('Доступ отклонен')
    								}
    								else{
    									if(d.execute){
    										d.runResponse()
    									}
    									else{
    										if(d.add_html){
    											d.elementObj.innerHTML+=d.response
    										}
    										else{
    											d.elementObj.innerHTML=d.response
    										}
    									}
    								}
    							}
    						}
    						d.URLString="";
    						break
    					}
    				}
    			}
    		}
    	};
    	this.createAJAX()
    };
    
     
  15. Macro

    Macro Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Такие скрипты очень просто расшифровать.
    Заменяешь eval на document.write и перед этим и после этого пишешь textarea
     
  16. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Точно. JS вообще нельзя нормально зашифровать и оставить в рабочем состоянии.
    Но я использовал пакер Эдвардса. Он и придумал этот алгоритм, насколько мне известно.
    http://dean.edwards.name/packer/
     
  17. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    Как реализовать такую штуку:
    У нас есть поле:
    PHP:
    <input type=text name="abc">
    Нужно к ниму кнопочку: Если поле заполненое кнопа антивна, иначе дисейбл
     
  18. Impuls*

    Impuls* Elder - Старейшина

    Joined:
    3 Oct 2007
    Messages:
    75
    Likes Received:
    6
    Reputations:
    -1
    А есть ли

    А есть ли скриптик, подделывающий адресную строку браузера? :)
    Допустим, пользователь находится на sait.ru, а в url браузера написано google.com
    Есть ли такая фишка и для каких браузеров актуальна?

    С меня ++ за помощь. Если что - пишите в ПМ :)
     
    #218 Impuls*, 25 Dec 2007
    Last edited: 25 Dec 2007
  19. dinar_007

    dinar_007 Мадемуазель

    Joined:
    18 Jan 2005
    Messages:
    1,019
    Likes Received:
    770
    Reputations:
    97
    Если я не ошибаюсь, то так можно сделать, если подредактировать файл hosts...
     
    1 person likes this.
  20. Impuls*

    Impuls* Elder - Старейшина

    Joined:
    3 Oct 2007
    Messages:
    75
    Likes Received:
    6
    Reputations:
    -1
    А поподробнее, как его редактировать и где он находится... :)
     
Thread Status:
Not open for further replies.