javascript obje ye dışarıdan parametre eklenirmi.
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>
<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.