This (скрипка ссылка)
как "безопасный", как вы собираетесь получить. Никто не может проверить элемент или получить доступ к функции, которая отображает его, поскольку в моем случае она завернута в обработчик событий, в вашем случае она будет перенесена на нужное событие. Эту «защиту» нельзя нарушить 99% веб-разработчиков, я не знаю, как я ее сломаю, я хотел бы, чтобы кто-нибудь здесь показывал, как это сделать.
Edit: добавил еще более высокий уровень защиты
//Register the handler to the event you want to have show the submit form
//You can just add this to anything you want... i chose a button because.. .reasons, you probably
//want some checkbox or timed event to check if you filled out your form
document.getElementById("enableForm").addEventListener('click',
(function() {
var submitForm = document.createElement('div');
var submitButton = document.createElement('button');
submitButton.innerHTML = "Submit";
submitButton.addEventListener('click', submit);
submitForm.innerHTTML = "<p>This is a form</p>";
submitForm.appendChild(submitButton);
var extraProtection = false;
function ShowSubmitForm() {
var parent = document.getElementById("formParent").appendChild(submitForm);
}
function ShowFormHandler() {
//Make a function that handles when to show the form
ShowSubmitForm();
}
function submit() {
alert("Protected submit");
}
return ShowFormHandler;
})()
);
Если бы я тебя, я бы использовать дисплей стиль CSS: нет для этого –
Вы не можете скрыть ничего безопасно на веб-странице. – epascarello
Все, что отправлено клиенту, может быть просмотрено клиентом каким-то образом. – MrTux