Bạn có thể dùng phím mũi tên hoặc WASD để
lùi/sang chương.
Để lấy mã tải truyện bạn vui lòng:
- Tìm kiếm trên Google từ khoá: "thuê nhà nguyên căn gò vấp " click vào website: Muonnha.com.vn (trang 2 hoặc trang 3 google tìm kiếm)
- Kéo xuống cuối website bấm vào "Click ly mã".
Cảm ơn bạn đã ủng hộ Truyenchu.vn
(*)Lưu ý: Truyện bn đang tải có thể chưa có Ebook, chúng tôi đang hoàn thiện chức năng này. Rất mong bạn thông cảm, chúng tôi sẽ sớm bổ sung Ebook vào thời gian sớm nhất có thể.
Ebook truyện Ta cảnh giới vô địch, nữ đế tự tiến chẩm tịch đang
được cập nhật. Chúng tôi xin li về sự bất tiện này. Rất mong bạn thông cảm.
function iOSSafari() {
var ua = window.navigator.userAgent;
var iOS = ua.match(/Macintosh/i) || ua.match(/iPad/i) || ua.match(/iPhone/i);
var webkit = ua.match(/WebKit/i);
var iOSSafari = iOS && webkit && !ua.match(/CriOS/i) && !ua.match(/EdgiOS/i) && !ua.match(/Chrome/i) && !ua.match(/Edg/i);
return iOSSafari;
}
function openModal(target) {
$(target).show().addClass('in');
$('.modal-backdrop').addClass('in');
$('body').append('
');
}
function closeModal() {
$('#loginModal').hide().removeClass('in');
$('.modal-backdrop').removeClass('in');
$('body').find('.modal-backdrop').remove();
}
function showForm(isRegister, target) {
if (isRegister) {
$('#formLoginLabel').hide();
$('#formLogin').hide();
$('#footerFormLogin').hide();
$('#formRegisterLabel').show();
$('#formRegister').show();
$('#footerFormRegister').show();
} else {
$('#formRegisterLabel').hide();
$('#formRegister').hide();
$('#footerFormRegister').hide();
$('#formLoginLabel').show();
$('#formLogin').show();
$('#footerFormLogin').show();
}
openModal(target);
}
function login(user, passwd) {
if (user && passwd) {
$.post('/auth/users/ajax-login', {
username: user,
password: passwd
}, function(res) {
if (res.success) {
window.location.reload();
} else {
$('#labelError').text(res.message).show();
}
$('#btnLogin').removeAttr('disabled');
});
return;
}
$('#btnLogin').on('click', async function() {
const username = user || $('#formLogin input[name="uemail"]').val();
const password = passwd || $('#formLogin input[name="upass"]').val();
$(this).attr('disabled', 'disabled');
await $.post('/auth/users/ajax-login', {
username,
password
}, function(res) {
if (res.success) {
window.location.reload();
} else {
$('#labelError').text(res.message).show();
}
$('#btnLogin').removeAttr('disabled');
});
});
}
function register() {
$('#btnRegister').on('click', async function() {
const full_name = $('#formRegister input[name="ufullname"]').val();
const email = $('#formRegister input[name="uemail"]').val();
const password = $('#formRegister input[name="upass"]').val();
const password_conf = $('#formRegister input[name="upass_conf"]').val();
const captcha = $(document).find('textarea[name="g-recaptcha-response"]').val();
var rex_email = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
const validation = {
name: false,
email: false,
password: false,
password_conf: false
};
if (!full_name) {
$('#formRegister input[name="ufullname"]').parent().addClass('has-error');
} else {
validation.name = true;
}
if (!email || !rex_email.test(email)) {
$('#formRegister input[name="uemail"]').parent().addClass('has-error');
} else {
validation.email = true;
}
if (!password) {
$('#formRegister input[name="upass"]').parent().addClass('has-error');
} else {
validation.password = true;
}
if (!password_conf || password_conf !== password) {
$('#formRegister input[name="upass_conf"]').parent().addClass('has-error');
} else {
validation.password_conf = true;
}
if (validation.name && validation.email && validation.password && validation.password_conf) {
$(this).attr('disabled', 'disabled');
await $.post('/auth/users/ajax-register', {
email,
full_name,
password,
'g-recaptcha': captcha
}, function(res) {
function cb(success, msg, email, password) {
if (success) {
login(email, password);
} else {
$('#labelError').text(msg).show();
}
}
if (typeof res === 'string') {
try {
const _res = JSON.parse(res.replace("Y\n", "{\n"));
cb(_res.success, '', email, password);
} catch (e) {
console.log(e);
}
return;
}
cb(res.success, res.message, email, password);
$('#btnRegister').removeAttr('disabled');
});
} else {
alert('Vui lòng nhập đầy đủ thông tin');
}
});
}
function handleFormRegister() {
$('#formRegister button').removeAttr('disabled');
}
function checkLogin() {
$.get('/user/check-login', function(html) {
$('.navbar-right .navbar-form').after(html);
/*$('[data-toggle="modal"]').on('click', function() {
const target = $(this).data('target');
const isRegister = $(this).data('form') === 'register';
showForm(isRegister, target);
});
$('[data-dismiss="modal"]').on('click', function() {
closeModal();
});*/
});
}
$(document).ready(function() {
$('[data-toggle="modal"]').on('click', function() {
const target = $(this).data('target');
const isRegister = $(this).data('form') === 'register';
showForm(isRegister, target);
});
$('[data-dismiss="modal"]').on('click', function() {
closeModal();
});
/*login();
register();*/
checkLogin();
$('#ads-fl-l').attr('src', $('#ads-fl-l').data('src'));
$('#ads-fl-r').attr('src', $('#ads-fl-r').data('src'));
const btnPostBook = document.querySelectorAll('[data-action="post-new-book"]');
(btnPostBook || []).forEach((btnPost) => {
btnPost.addEventListener('click', function() {
$.get('/api/services/get-post-link', function(res) {
if (res?.url !== '') {
/*let newTab = window.open();
newTab.location.href = res.url;*/
if (iOSSafari()) {
setTimeout(() => {
window.open(res.url, '_blank');
});
} else {
const a = document.createElement('a');
a.setAttribute('href', res.url);
a.setAttribute('target', '_blank');
a.innerHTML = "Đăng truyện";
a.classList.add("hidden");
document.getElementsByTagName('body')[0].appendChild(a);
a.click();
a.remove();
}
}
});
});
});
});