Я пытаюсь сделать напоминание. В HTML у меня было бы 2 текстовых поля (один для даты и другой для чего-то вроде «Сегодня день рождения вашей бабушки!») и одна кнопка, которая выполняет эту функцию. Поэтому, когда пользователь вводит дату и текст и кнопку кликов, создается функция JavaScript, которая будет отображать «Сегодня день рождения вашей бабушки!» в каком-то параграфе, когда наступает этот день.
Я знаю, как сделать function reminder()
, который отобразит «Сегодня день рождения вашей бабушки!» в заданную дату, но я не знаю, как сделать функцию, которая добавит мою функцию reminder()
в мой JavaScript-документ.
Возможно ли это?Изменение содержимого JavaScript с помощью JavaScript
ответ
Это немного глупо и, вероятно, не то, что вы хотите, но вы можете определенно переписать функцию на JavaScript, чтобы быть чем угодно. Пример ниже: в первый раз, когда вы запустите код, он предложит вам и сам изменит функцию, чтобы сделать что-то совершенно другое и использовать закрытие, оно будет фиксировать начальную дату и сообщение, которые будут использоваться при следующем вызове.
(function() {
'use strict';
function Reminder() {
var aDate = prompt('Enter date (dd/mm/yyyy): ');
var msg = prompt('Enter message to aassociate with the date: ');
var inputDate = new Date(aDate);
Reminder = function() {
var todaysDate = new Date();
if(inputDate.setHours(0,0,0,0) == todaysDate.setHours(0,0,0,0)) {
alert(msg);
}
};
return Reminder;
}
//Firs time around ask for the data and dynamically change the function...
Reminder();
//call it again... this time around it should remind you and no longer pompt...
Reminder();
}());
Как сказал комментарии, что Вы действительно хотите, вероятно, чтобы сохранить входы в каком-хранилище и, когда страница загружена, она будет извлекать данные из хранилища и сделать чтобы напомнить пользователю о вещах, которые ранее были сохранены.
Это определенно не так, но поскольку вы спросили, можете ли вы переписать javascript из javascript, да, вы можете.
Я видел, как этот шаблон используется как механизм кеширования, где при первом вызове он возвращается на сервер и загружает данные, а затем использует переписывание, фиксирует любое полученное значение и просто выполняет это значение в следующий раз. запросил и сохранил страницу от перехода на сервер каждый раз, когда это необходимо. –
Это не имеет большого смысла. Просто сделайте код всегда проверять, чтобы увидеть, какое сообщение (ы) показывать. – Pointy
Я не думаю, что «изменение содержимого Javascript» является точной квалификацией для этой функции. – arothuis
Я думаю, что это то, что вы ищете http://stackoverflow.com/questions/12964262/create-a-javascript-function-dynamically-from-a-string-name – Anshuman