【问题标题】:Changing JavaScript content with JavaScript使用 JavaScript 更改 JavaScript 内容
【发布时间】:2015-04-05 16:12:22
【问题描述】:

我正在尝试提醒。在 HTML 中,我有 2 个文本框(一个用于日期,另一个用于“今天是你祖母的生日!”)和一个执行该功能的按钮。因此,当用户输入日期和文本并单击按钮时,会在 JavaScript 中创建函数,当那一天到来时,该函数将在某个段落中显示“今天是你祖母的生日!”。
我知道如何制作function reminder (),它将在给定日期显示“今天是你祖母的生日!”,但我不知道如何制作将我的reminder() 功能添加到我的功能JavaScript 文档。
这可能吗?

【问题讨论】:

  • 这没有多大意义。只需让代码始终检查以查看要显示的消息。
  • 我不认为“更改 Javascript 内容”是此功能的准确限定。
  • 我想这就是你要找的stackoverflow.com/questions/12964262/…
  • 如果您想在服务器上存储信息,您需要服务器端代码(如 PHP)。如果要在本地存储信息,可以使用localstorage。无论如何,我不建议制作动态函数,只需将 key:value 与日期和消息配对即可。
  • 感谢 Anshuman ,我认为这可以解决问题。 [链接](stackoverflow.com/questions/12964262/…) 我更喜欢第二个答案,但我不明白"use strict" 的用途。

标签: javascript html function reminders


【解决方案1】:

这有点傻,可能不是你想要的,但你绝对可以用 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();
  
}());

正如 cmets 所说,您真正想要的可能是将输入存储在某种存储中,当页面加载时,它会从存储中检索数据并计算是否提醒用户之前保存的。

这绝对不是,但既然你问是否可以从 javascript 重写 javascript,是的,你可以。

【讨论】:

  • 我已经看到这种模式被用作缓存机制,在第一次调用时它将返回服务器并加载数据,然后使用重写,捕获检索到的任何值并提供服务下一次请求它时的价值,并在每次需要时都将页面保存到服务器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 2013-11-02
  • 2023-03-28
  • 2020-12-30
  • 2018-04-05
  • 2014-07-05
相关资源
最近更新 更多