Staff en línea
Últimos temas
[Ocio] Contemos hasta el 5000
por Roger Hoy a las 1:56 am

[ayuda] mostrar y ocultar div
por RinC Vie Dic 15, 2017 5:17 pm

[html]Colección de Cards informátivo
por Julinho Vie Dic 15, 2017 3:19 pm

[html]Menú de enlaces simple
por Andreii Vie Dic 15, 2017 2:36 pm

[html]Escaparate de imágenes sencillo
por Andreii Vie Dic 15, 2017 2:30 pm

Página 3 de 3. Precedente  1, 2, 3

[beta] Borrar post sin cambiar de página
Tema iniciado por y Añadir a favoritos

[beta] Borrar post sin cambiar de página 
el Dom Mayo 08, 2016 9:02 pm
Mensaje  Chalo


Última edición por Chalo el Vie Jun 30, 2017 12:41 pm, editado 4 veces
Recuerdo del primer mensaje :

[codebox]Aqui les dejo mi código para borrar post, es mejor, y más bonito que los que circulan[/codebox]
[alert]Es importante colocar en No la opción prohibir formularios no oficiales

[/alert]
[info]Version: 1.2[/info]
Código:

var OSDelete = {
    copyright: function () {
        console.log('Delete ajax 1.3 - Written by Chalo, visit www.opensourcephpbb3.com')
    },
    css: '#Confirm_wrap{background:#FFF;border:1px solid #DDD;min-width:140px;position:absolute;text-align:center;z-index:100;padding:7px 13px;margin-top:30px;margin-left:-6%;box-shadow:-1px 2px 15px #555}#Confirm_btn>div:first-child{margin-left:0}#Confirm_btn>div{margin-right:4px;margin-left:4px;width:45%;padding:3px 0!important;border:0;color:#fff;font:300 11px/16px "Open Sans","Helvetica Neue",Arial,sans-serif!important;cursor:pointer;text-align:center;text-decoration:none;text-shadow:0 1px 0 rgba(0,0,0,.25);background-color:#267cc2;background-image:-webkit-gradient(linear,left bottom,left top,from(#42a5e1),to(#267cc2));background-image:-webkit-linear-gradient(#42a5e1,#267cc2);background-image:-moz-linear-gradient(#42a5e1,#267cc2);background-image:-ms-linear-gradient(#42a5e1,#267cc2);background-image:-o-linear-gradient(#42a5e1,#267cc2);background-image:linear-gradient(#42a5e1,#267cc2);-moz-transition:.5s;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}#Confirm_btn>div{white-space:nowrap;display:inline-block}#Confirm_btn>div:last-child{background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#db5530),color-stop(1,#db1f1f));background:-moz-linear-gradient(top,#db5530 5%,#db1f1f 100%);background:-webkit-linear-gradient(top,#db5530 5%,#db1f1f 100%);background:-o-linear-gradient(top,#db5530 5%,#db1f1f 100%);background:-ms-linear-gradient(top,#db5530 5%,#db1f1f 100%);background:linear-gradient(to bottom,#db5530 5%,#db1f1f 100%);background-color:#db5530;text-shadow:0 1px 0 #854629}#Confirm_content{border-bottom:1px solid #DDD;color:#444;margin-bottom:7px;padding-bottom:5px}',
    html: '<div id="Confirm_content">¿Deseas eliminar este post</div><div id="Confirm_btn"><div id="Confirm_yes" onclick="OSDelete.yes(this)">Si</div><div id="Confirm_cancel" onclick="OSDelete.remove(this)">Cancelar</div></div>',
    init: function () {
        var a = document.getElementsByTagName('a'),
            b = document.head,
            c = document.createElement('style'),
            len = a.length;
        for (var i = 0; i < len; i++) {
            if (/post\?p=(\d+)&tid=(\w+)&mode=delete/.test(a[i].href)) {
                a[i].setAttribute('onclick', 'OSDelete.delete(this);return false')
            }
        }
        c.innerHTML = OSDelete.css;
        b.appendChild(c);
        OSDelete.copyright();
    },
    popup: function (c, b, e) {
        try {
            b.id = 'Confirm_wrap';
            b.style.left = c.offsetLeft + 'px';
            !document.getElementById('Confirm_wrap') && c.parentNode.insertBefore(b, c);
        } catch (e) {
            console.error(e)
        }
    },
    delete: function (c) {
        var b = document.createElement('div'),
            d = document.getElementById('Confirm_wrap'),
            e = c.href.match(/(?!p=)(\d+)(?=&)/)[0];
        OSDelete.href = c.href;
        OSDelete.Post = document.getElementsByClassName('post--' + e);
        d && OSDelete.remove(d);
        OSDelete.popup(c, b, e);
        b.innerHTML = OSDelete.html;
    },
    yes: function (c) {
        c.textContent = 'Borrando...';
        c.onclick = '';
        var e,
            a = 'confirm=1',
            b = OSDelete.href;
        e = window.XMLHttpRequest ? new XMLHttpRequest : window.ActiveXObject && (new ActiveXObject('Microsoft.XMLHTTP'));
        e.open('POST', b);
        e.responseType = 'document';
        e.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        e.send(a);
        e.onreadystatechange = function () {
            if (this.readyState == 4 && this.status == 200) {
                var d = OSDelete.Post,
                    len = d.length;
                len > 1 ? (d[1].parentNode.removeChild(d[1]), d[0].parentNode.removeChild(d[0])) : d[0].parentNode.removeChild(d[0]);
                !document.getElementsByClassName('post').length && history.back()
            }
        }
    },
    remove: function (c) {
        var a = c.id.match(/s(\d+)/) ? c : c.parentNode.parentNode;
        a.parentNode.removeChild(a);
    }
};
$(function () {
    /\/t(\d+)/.test(location.pathname) && OSDelete.init()
});
staff
Chalo
avatar

¿Que estoy pensando? :

los dias de ocio son geniales [table class=fecha_up][td]Se modifico:13/12/17 - 11:40 hrs. [/td][/table]


Banner en temas :

http://i.imgur.com/XlCMsAOh.jpeg


Color de titulos :

#fff


Sombra titulo :

0 0 1px #000


Mensajes :

6469


Puntos :

8481


Me gusta :

967


ingreso :

17/04/2014


Sexo :

Masculino

Plataforma :

phpbb3


Navegador :

chrome


Ver perfil de usuario http://www.opensourcephpbb3.com

Volver arriba Ir abajo

Re: [beta] Borrar post sin cambiar de página 
el Vie Jun 30, 2017 11:46 am
Mensaje  Chalo
uso esto:
Código:

 if (document.readyState != 'loading')  init()
    else if (document.addEventListener) document.addEventListener('DOMContentLoaded',init());
    else document.attachEvent('onreadystatechange', function () {
        if (document.readyState == 'complete') init();

pero sigue abarcando más situaciones[ic] $(function(){})[/ic], mas eficiente
staff
Chalo
avatar

¿Que estoy pensando? :

los dias de ocio son geniales [table class=fecha_up][td]Se modifico:13/12/17 - 11:40 hrs. [/td][/table]


Banner en temas :

http://i.imgur.com/XlCMsAOh.jpeg


Color de titulos :

#fff


Sombra titulo :

0 0 1px #000


Mensajes :

6469


Puntos :

8481


Me gusta :

967


ingreso :

17/04/2014


Sexo :

Masculino

Plataforma :

phpbb3


Navegador :

chrome


Ver perfil de usuario http://www.opensourcephpbb3.com

Volver arriba Ir abajo

Re: [beta] Borrar post sin cambiar de página 
el Vie Jun 30, 2017 12:12 pm
Mensaje  Flerex
Veamos, confundes algunos conceptos. Te dejo algunas cosas que deberías tener en cuenta:

  1. No deberías comprobar document.readyState porque la ejecución de tu código nunca se dará de forma asíncrona (sobre todo porque es inútil hacerlo con este tipo de scripts).
  2. La línea que comprueba que document.readyState sea 'complete' es innecesaria e incorrecta. document.readyState toma valor 'complete' cuando el evento .load está a punto de ejecutarse, lo cual es totalmente lo contrario de lo que quieres hacer. En tal caso sería 'interactive', yet again, no es necesario puesto que el evento 'DOMContentLoaded' se lance implica que el valor sea como mínimo 'interactive'.
  3. No es necesario que utilices attachEvent, es una función no estándar que se utiliza en versiones muy antiguas de IE.

En general, intentas dar soporte a navegadores muy antiguos utilizando objetos no estándar. Recuerda que lo normal es dar soporte a las versiones corrientes de los navegadores y version corriente - 1. Incluso si quieres ir un poco más lejos, IE11 también. Sin embargo, estás yendo mucho al pasado. Para que te hagas a la idea, Foroactivo pronto introducirá jQuery 3, que ya no soporta versiones antiguas de muchos navegadores (incluidos aquellos a los que intentas dar soporte).

Mi consejo es en que te centres en la sencillez y corrección de tus códigos. Para cosas como una extrema compatibilidad con navegadores antiguos se usa jQuery. ¡Recuerda no reinventar la rueda! ¡Mucho ánimo!
Flerex
avatar

¿Que estoy pensando? :

Flerex


Banner en temas :

Flerex


Color de titulos :

Flerex


Sombra titulo :

1px 1px 1px #fff


Mensajes :

26


Puntos :

36


Me gusta :

6


ingreso :

14/07/2015


Sexo :

Masculino

Plataforma :

PhpBB3


Navegador :

Chrome


Ver perfil de usuario

Volver arriba Ir abajo

Re: [beta] Borrar post sin cambiar de página 
el Vie Jun 30, 2017 12:23 pm
Mensaje  Chalo


esa es la idea, seguir reinventando la rueda, al menos así me divierto más ;)

pero gracias por los comentarios, desglosando $(function(){}) en jQuery, es sumamente elaborado, pareciera que no, pero consideran muchas cosas antes de ejecutar el script, por eso prefiero usarlo a las alternativas en vanilla, $(function(){}) no es igual exclusivamente a:
@Flerex escribió:document.addEventListener('DOMContentLoaded', function() {
});

ya lo he comprobado hace tiempo, es la única situación que mantengo de jQuery, ya me acostumbre a pensar en js pano, tengo mis propios "helpers", en fin gracias por tus opiniones , son valiosas para mi, saludos
staff
Chalo
avatar

¿Que estoy pensando? :

los dias de ocio son geniales [table class=fecha_up][td]Se modifico:13/12/17 - 11:40 hrs. [/td][/table]


Banner en temas :

http://i.imgur.com/XlCMsAOh.jpeg


Color de titulos :

#fff


Sombra titulo :

0 0 1px #000


Mensajes :

6469


Puntos :

8481


Me gusta :

967


ingreso :

17/04/2014


Sexo :

Masculino

Plataforma :

phpbb3


Navegador :

chrome


Ver perfil de usuario http://www.opensourcephpbb3.com

Volver arriba Ir abajo

Re: [beta] Borrar post sin cambiar de página 
el Vie Jun 30, 2017 12:28 pm
Mensaje  Flerex
@Chalo escribió:

esa es la idea, seguir reinventando la rueda, al menos así me divierto más ;)

pero gracias por los comentarios, desglosando $(function(){}) en jQuery, es sumamente elaborado, pareciera que no, pero consideran muchas cosas antes de ejecutar el script, por eso prefiero usarlo a las alternativas en vanilla, $(function(){}) no es igual exclusivamente a:
@Flerex escribió:document.addEventListener('DOMContentLoaded', function() {
});

ya lo he comprobado hace tiempo, es la única situación que mantengo de jQuery, ya me acostumbre a pensar en js pano, tengo mis propios "helpers", en fin gracias por tus opiniones , son valiosas para mi, saludos

Muchas funciones de jQuery pueden parecer complejas, pero lo importante es entender que hacen. Por ejemplo, si un navegador tiene soporte para el evento DOMContentLoaded (todos lo tienen ahora mismo), jQuery.ready lo único que hace es llamarlo.

De nada hombre, para eso estamos.
Flerex
avatar

¿Que estoy pensando? :

Flerex


Banner en temas :

Flerex


Color de titulos :

Flerex


Sombra titulo :

1px 1px 1px #fff


Mensajes :

26


Puntos :

36


Me gusta :

6


ingreso :

14/07/2015


Sexo :

Masculino

Plataforma :

PhpBB3


Navegador :

Chrome


Ver perfil de usuario

Volver arriba Ir abajo

 En la misma categoria


Permisos de este foro:
No puedes responder a temas en este foro.