Postar sem atualizar a página
2 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Postar sem atualizar a página
Detalhes da questão
Endereço do fórum: http://rpgteste.forumeiros.com/
Versão do fórum: PunBB
Descrição
hoje fui ver a pre visualização e ocorreu um erro ela enviou a mensagem em vez de pré visualizar.
- Código:
/ *
* Código: Postar mensagem sem refresh
* Versão: 1.0
* Autor: Daemon
* Data: 17/09/2016
*/
$(document).on("ready", function() {
$("body").append(
'<style>' +
'.alert-success, .alert-error {' +
' -moz-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
' -webkit-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
' background: url(https://imgur.com/J3aqwYE.png) repeat-x 0 0;' +
' box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
' display: block;' +
' font-size: 12px;' +
' line-height: 1.6;' +
' padding: 10px;' +
' text-shadow: 0 1px 0 rgba(255,255,255,0.5);' +
'}' +
'.alert-success {' +
' background-color: #cde3a4;' +
' border: 1px solid #a8c471;' +
' color: #436500;' +
'}' +
'.alert-error {' +
' background-color: #ffbdbd;' +
' border: 1px solid #d8aba7;' +
' color: #92463f;' +
'}' +
'</style>'
);
var hrefResposta = $("a[href^='/post?t=']").attr("href");
var form = $("#quick_reply");
$("<div id='resultados_ajax'></div>").prependTo(form);
$("#quick_reply").submit(function(form) {
var resAjax = $("#resultados_ajax"); // Elemento resultados_ajax
var textEditorVal = $("textarea").sceditor("instance").val(); // Valor do editor
var min = 10; // Mínimo de caracteres para o post
var max = 15000; // Máximo de caracteres para o post (Não ultrapasse o valor limite estipulado pela forumeiros)
if(textEditorVal.length < min) {
resAjax.html("Digite pelo menos " + min + " caracteres para enviar o post").attr("class","alert-error");
return false;
}
if(textEditorVal.length > max) {
resAjax.html("Seu post ultrapassou o limite de " + max + " caracteres").attr("class","alert-error");
return false;
}
$("input[type='submit']").attr("disabled", true);
var parametros = $(form).serialize();
$.ajax({
type: "POST",
url: hrefResposta,
data: parametros + "&message=" + textEditorVal + "&post=1",
beforeSend: function(objeto){
resAjax.html("Carregando...").attr("class", false);
},
success: function(dados){
var href = $("a[href^='/viewtopic']", dados).attr("href");
$.get(href, function(e) {
$(".post:last", e).hide().insertAfter(".post:last").slideDown("fast", function() {
$("html, body").animate({
scrollTop: $(".post:last").offset().top
}, 500);
});
});
resAjax.html("Postado com sucesso!").attr("class","alert-success");
$("input[type='submit']").attr("disabled", false);
$("textarea").sceditor("instance").val("");
}
});
return false;
});
});
Re: Postar sem atualizar a página
Olá,
Não se importa de me passar uma conta teste?
Fico no aguardo.
Não se importa de me passar uma conta teste?
Fico no aguardo.
Convidado- Convidado
Re: Postar sem atualizar a página
Olá novamente,
Veja se este código resulta:
Cordialmente,
Roger123
Veja se este código resulta:
- Código:
/* globals jQuery*/
/**
* Código: Postar mensagem sem refresh
* Versão: 1.0
* Autor: Daemon
* Data: 17/09/2016
*/
(function($) {
'use strict';
var bg = function() {
$('div.postbody').each(function() {
var node;
var $post = $('.post-entry', this);
var $content = $('.content', this);
if ($post.length) {
node = $post[0];
} else if ($content.length) {
node = $content[0];
}
while (node.nodeType !== 3 && node.hasChildNodes()) {
node = node.childNodes[0];
}
if (node.nodeType !== 3) {
return;
}
if (node.nodeValue.substr(0, 8) !== '[postbg=') {
return;
}
var matches = node.nodeValue.match(/^\[postbg=([^\]]*)\]/);
if (!matches) return;
$(this)
.closest('div.post-container, div.post, td.row1, td.row2,div.postmain')
.addClass('postbg')
.css('background-image', 'url(' + matches[1] + ')');
node.nodeValue = node.nodeValue.replace(/^\[postbg=[^\[]*\]\n?/, '');
if (
!node.nodeValue
&& node.nextSibling
&& node.nextSibling.nodeType === 1
&& node.nextSibling.tagName === 'BR'
) {
$(node.nextSibling).remove();
}
});
};
$(function() {
$('body').append([
'<style>' +
'.alert-success, .alert-error {',
' -moz-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;',
' -webkit-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;',
' background: url(http://imgur.com/J3aqwYE.png) repeat-x 0 0;',
' box-shadow: rgba(0,0,0,0.1) 0 1px 3px;',
' display: block;',
' font-size: 12px;',
' line-height: 1.6;',
' padding: 10px;',
' text-shadow: 0 1px 0 rgba(255,255,255,0.5);',
'}',
'.alert-success {',
' background-color: #cde3a4;',
' border: 1px solid #a8c471;',
' color: #436500;',
'}',
'.alert-error {',
' background-color: #ffbdbd;',
' border: 1px solid #d8aba7;',
' color: #92463f;',
'}',
'</style>',
].join('\n'));
var hrefResposta = $('a[href^="/post?t="]').attr('href');
var $form = $('#quick_reply');
$form.prepend('<div id="resultados_ajax"></div>');
$form.on('submit', function(event) {
event.preventDefault();
var resAjax = $('#resultados_ajax'); // Elemento resultados_ajax
var textEditorVal = $('textarea').sceditor('instance').val(); // Valor do editor
var min = 10; // Mínimo de caracteres para o post
var max = 15000; // Máximo de caracteres para o post (Não ultrapasse o valor limite estipulado pela forumeiros)
if (textEditorVal.length < min) {
resAjax
.html('Digite pelo menos ' + min + ' caracteres para enviar o post')
.attr('class', 'alert-error');
return;
}
if (textEditorVal.length > max) {
resAjax
.html('Seu post ultrapassou o limite de ' + max + ' caracteres')
.attr('class', 'alert-error');
return;
}
/** BEGIN Fix background image */
var image = $('#quick_reply .sceditor-container')
.css('background-image')
.match(/url\(('|")?([^'"]+)('|")?\)/i);
if (image && image.length === 4) {
textEditorVal = '[postbg=' + image[2] + ']' + textEditorVal;
}
/** END Fix background image */
$('input[type="submit"]').attr('disabled', true);
var parametros = $form.serialize();
$.ajax({
type: 'POST',
url: hrefResposta,
data: parametros + '&message=' + textEditorVal + '&post=1',
beforeSend: function(objeto) {
resAjax.html('Carregando...').attr('class', false);
},
success: function(dados) {
var href = $('a[href^="/viewtopic"]', dados).attr('href');
$.get(href, function(e) {
$('.post:last', e).hide().insertAfter('.post:last').slideDown('fast', function() {
$('html, body').animate({
scrollTop: $('.post:last').offset().top,
}, 500);
bg();
});
});
resAjax.html('Postado com sucesso!').attr('class', 'alert-success');
$('input[type="submit"]').attr('disabled', false);
$('textarea').sceditor('instance').val('');
},
});
});
});
}(jQuery));
Cordialmente,
Roger123
Convidado- Convidado
Re: Postar sem atualizar a página
Olá @RPGU,
Diga-me quais os scripts ativos do seu fórum? Poderá existir um conflito de códigos!
Tente desativar um a um, deixando sempre o script em cima ativo, para ver qual anda a fazer o conflito; após descobrir qual passe-me. Tenha sempre a noção que é muito importante respeitar o investimento das Páginas JavaScript para que elas não façam esse tipo de erro.
Leia este tópico: Questão Resolvida .
Aguardo uma resposta sua,
pedxz
Diga-me quais os scripts ativos do seu fórum? Poderá existir um conflito de códigos!
Tente desativar um a um, deixando sempre o script em cima ativo, para ver qual anda a fazer o conflito; após descobrir qual passe-me. Tenha sempre a noção que é muito importante respeitar o investimento das Páginas JavaScript para que elas não façam esse tipo de erro.
Leia este tópico: Questão Resolvida .
Aguardo uma resposta sua,
pedxz
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7964
Pontos : 9219
Re: Postar sem atualizar a página
Olá novamente,
Queira seguir todos os passos apresentados nesta questão resolvida:
Questão resolvida.
Cordialmente,
Roger123
Queira seguir todos os passos apresentados nesta questão resolvida:
Questão resolvida.
Cordialmente,
Roger123
Convidado- Convidado
Re: Postar sem atualizar a página
eu segui todos os passos e o erro ainda persisti, isso não poderia ser algum conflito com o topics_list_box ou o viewtopic_body?
Re: Postar sem atualizar a página
A parte de pré-visualizar está funcionando, entretanto bugou o botão de enviar, quando eu clico em enviar ele repete a mensagem e se eu postar 2 mensagem a segunda não parece apenas repete a primeira.
- Código:
jQuery(window).load(function() {
var Copyright = 'Copyright BestSkins 2013. All right reserved. Não remova os créditos do autor.';
var daemon = $('a[href^="/post?t="]').first().attr('href');
$('#quick_reply input[name="post"]').on('click', function(post) {
post.preventDefault();
var valor = $('#text_editor_textarea').sceditor('instance').val().replace(/\s/g,'').length;
if(valor == 0) {
alert("Seu post está vazio");
} else if(20 > valor) {
alert("Você precisa digitar pelo menos mais "+(20-valor)+" caracteres, por favor, não faça flood");
} else if(15000 < valor) {
alert("Seu post passou de 15000 caracteres, diminua-o");
}
else if(20 <= valor && valor <= 15000) {
$.post(daemon, {
'message': $('#text_editor_textarea').sceditor('instance').val(),
'post': 'Enviar',
'attach_sig': '1'
}, function(e) {
var href = $(e).find('a[href^="/viewtopic"]').attr('href');
$.get(href, function(daemon) {
$(daemon).find('.post:last').hide().insertAfter('.post:last').slideDown('fast', function() {
$('html, body').animate({
scrollTop: $('.post:last').offset().top
}, 500);
});
});
$('#text_editor_textarea').sceditor('instance').val('');
});
}
});
});
Re: Postar sem atualizar a página
Já seguiu estes passos: Painel de Controle Geral Fórum Segurança Desautorizar formulários não oficiais de postarem no fórum e enviar mensagens privadas Marque Não ?
Se não, faça-o e verifique se o erro presiste.
Cordialmente,
Roger123
Se não, faça-o e verifique se o erro presiste.
Cordialmente,
Roger123
Convidado- Convidado
Re: Postar sem atualizar a página
Tópico resolvidoMovido para "Questões resolvidas". |
Convidado- Convidado
Tópicos semelhantes
» Postar sem atualizar a página
» Desconfiguração ao atualizar à página
» Editando tópico sem atualizar a página
» Lugares branqueados ao atualizar a página.
» [TUTORIAL] Reputar sem atualizar a página
» Desconfiguração ao atualizar à página
» Editando tópico sem atualizar a página
» Lugares branqueados ao atualizar a página.
» [TUTORIAL] Reputar sem atualizar a página
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos