为按钮 OnClick 动态创建文件名

Posted

技术标签:

【中文标题】为按钮 OnClick 动态创建文件名【英文标题】:Dynamically Creating Filename for Button OnClick 【发布时间】:2018-09-13 07:12:17 【问题描述】:

我有一个家谱网站,想显示我们家庭在当前日期(月和日)的所有事件。所以,如果今天是 4 月 3 日,我想展示我们家发生在 4 月 3 日的所有事件。

我尝试过创建表格和隐藏行等,但表格太大而且耗时太长。因此,我决定为一年中的每一天创建一个单独的 .htm 文件(即 todayinhistory-0101.htm、todayinhistory-0102.htm 等)。

我有一个按钮,当点击该按钮时,可以获取 MMDD 格式的当前日期,然后打开正确的文件。

我有脚本可以使用 MMDD 格式的当前日期获取正确的文件名,但我不知道如何调用它并使其工作。

现在,我的按钮如下所示:

<button onclick="location='GetTodayInHistoryFilename()'">

GetTodayInHistoryFilename() 是一个我知道有效的函数。我只是无法正确调用按钮格式。

显然,我是新手,希望得到任何人的帮助。

如果您有兴趣,这里是 GetTodayInHistoryFilename() - 加载到页面的标题部分:

<script type='text/javascript'>
 function GetTodayInHistoryFilename()
     
         var Today = new Date();
         var TodayMonth = Today.getMonth()+1;
         var TodayDay = Today.getDate();
         if (TodayMonth < 10)  TodayMonth = '0' + String(TodayMonth);  else  TodayMonth = String(TodayMonth); 
         if (TodayDay < 10)  TodayDay = '0' + String(TodayDay);  else  TodayDay = String(TodayDay); 
         return 'todayinhistory-' + TodayMonth + TodayDay + '.htm';
     
</script>

提前致谢。

【问题讨论】:

【参考方案1】:

我不是 100% 确定这是你想要做的,但我认为你希望按钮点击导航到另一个 html 页面,在这种情况下 - 你不远:

<button onclick="window.location=GetTodayInHistoryFilename()">

说明:您正在将窗口对象(在本例中为浏览器的***框架)的 location 属性设置为 (一个新的 url)。您已经使用您的函数定义了它,这很好。您犯的唯一错误是将函数包含在引号中。这意味着函数名称被视为文字文本字符串,而不是可执行函数。

您可能需要也可能不需要在window.location 中指定window.(全局对象)。我不确定自己,但在这里得到了很好的回答:window.location versus just location

【讨论】:

以上是关于为按钮 OnClick 动态创建文件名的主要内容,如果未能解决你的问题,请参考以下文章

动态创建的 div 的 onclick 事件

将JSON数组传递给按钮jQuery的动态创建的onclick方法

在 React 中为动态创建的按钮添加禁用属性

Java 中的动态 XML 创建

React - onClick 用于动态生成的组件

JavaScript动态按钮onClick事件(变量范围)