v2.5.2
Giriş yap

javascript obje ye dışarıdan parametre eklenirmi.

kartal
501 defa görüntülendi

ajax fonksiyonuma callback obje ekleyip
obje içinde responseText almak istiyorum. Fonksiyon ile oluyor ama birden fazla fonsiyon kullanacağım objeye parametre almak istiyorum.

<javascript>

Ajx(form,'ajax.php', 'POST', alertBox);

const alertBox = {
    
    //BURAYA ajax sayfasında ki responseText içeriğini almak istiyorum
    
    function init(){
        //başka birşey..
    }
    
    function show(e){
        console.log(e.responseText); //BURASI
    }
};

</javascript>

<php>

//ajax
function Ajx(form, url, method, callback) {

    if (this.readyState == 4 && this.status == 200) {
       
        if (typeof callback == 'object') {
    		callback(this);
    	}
    	
    }

</php>

kartal
1270 gün önce

<script>

'use strict';
function ysAjax(url, method, data, callback) {

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function () {
  if (this.readyState == 4 && this.status == 200) {
    if (typeof callback == 'function') {
      callback(this);
    }
  }
}

xhr.open(method, url);
if (method == 'POST' && !(data instanceof FormData)) {
  xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
}
xhr.send(data);

}

'use strict';
ysAjax('metin.txt', 'GET', null, yazdir);

function yazdir (sonuc) {

console.log(sonuc.responseText);

}
Fonksiyona bu şekilde parametre yollayabiliyorum sonucuda consolda alıyorum.
Burada fonksiyon yerine objeye parametre göndermek istiyorum, fonksiyona değil yani.
</script>
<script>

const alertBox = {  //responseText değerini alamadım bu objeye
		
			init(){

				this.hideTimeout = null;

				this.el = document.createElement('div');
				this.el.className = 'alert_box';
				document.body.appendChild(this.el);
			},

			show(message,state){
				clearTimeout(this.hideTimeout);
				this.el.textContent = message;
				this.el.className = 'alert_box alert_box_visible'; 
				/*
				alert_box_visible
				css de opacity 0, visibility visible oluyor
				*/
				
				if(state){
					this.el.classList.add(state);
				}

				
				this.hideTimeout = setTimeout(() => {
					//this.el.classList.remove('alert_box_visible');
				}, 3000);
			}

	};

</script>
Amacım dönen değeri notification alert olarak göstermek.