超链接中的日期变量(metarefresh)

时间:2015-02-17 11:02:28

标签: javascript html

我正在尝试根据今天的日期在URL中包含日期变量 - 具体来说,我试图包含一个来自sharepoint的链接,该链接将用户带到共享驱动器中的相关文件。

我最初的想法是一个带有元刷新的HTML页面,它会将用户带到正确的页面:

我已经能够在VBA和autohotkey中执行以下变量,但我是Javascript的新手,因此无法创建任何可用的东西。

这需要基于客户端(因此是javascript) - 以下是我所拥有的,这是有效的但不是动态的

任何人都可以通过让我知道w来帮助。如果JS是最好的前进方式(我可以访问notepad ++并且无法访问服务器)以及我如何在VBA中包含类似YYYY的{​​{1}}或月份名称等日期变量

Format(Date, "YYYY")

2 个答案:

答案 0 :(得分:0)

您应该只使用JavaScript:

,而不是<meta>标记
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth();
window.location.href = "file:///O:\Operations\Recc\Received\" + year + "\" + month;

我修改了原始网址以使用file协议,因为在大多数浏览器中,文件系统网址都不会起作用。

如果您需要以文本方式使用月份,那么您可以使用查找表编写自己的实用程序方法,类似于以下内容:

function getMonthName(month) {
    var monthNames = ['Jan', 'Feb', ...];
    return monthNames[month];
}

并使用它:

var monthName = getMonthName(date.getMonth());

完整的示例页面

<!doctype html>
<html>
<head>
</head>
<body>
    <p>You are being redirected to the correct location...</p>
    <script type="text/javascript">
    function getMonthNames(month) {
        var monthNames = [ "January", "February", "March", "April", "May",
                "June", "July", "August", "September", "October", 
                "November", "December" ];
        return monthNames[month]; 
    }

    function doRedirect() {
        var date = new Date();
        var year = date.getFullYear();
        var month = date.getMonth();
        var monthName = getMonthName(date.getMonth());
        window.location.href = "file:///O:\Operations\Recc\Received\\" 
                + year + "\\" + monthName;
    }

    setTimeout(doRedirect, 500);
    </script>
</body>
</html>

然而,这可行,作为一种安全措施,大多数浏览器都不允许访问本地文件系统,因此您想要实现的目标在大多数浏览器中都无法工作 - 至少在默认情况下是这样。

答案 1 :(得分:-2)

如果我理解正确,你应该尝试在标记之前添加:

  <script>
  window.location = "mynewgeneratedlocation";
  </script>

此脚本将动态重定向页面,但是为了添加自定义数据,您应该检查Date对象

http://www.w3schools.com/js/js_dates.asp