【发布时间】:2016-02-05 18:02:41
【问题描述】:
我对 javascript/jquery 非常陌生。编写了以下脚本,它适用于 Chrome 46.0.2490.80 m,但不适用于 Firefox 42.0 或 IE 11。
%<value_name>% 格式的值是来自我正在使用的内容管理系统的预定义值。
如果布尔值"%asset_metadata_register_button%" 设置为0,或者在日期变量"eventDate" 发生后一天,脚本应该隐藏一个按钮。否则显示按钮。
脚本还应该在eventDate 发生后更改按钮的文本和href 值。
HTML
<p id="show"><a id="change" class="button" href="firstURl">Register</a></p>
Javascript
$(document).ready(function() {
// Boolean value from Show Registration Button metadata field
var number = "%asset_metadata_register_button%";
// variable for start date of event
var eventDate = new Date('%asset_attribute_start_date%');
// variable for date at present time
var now = new Date();
// variable for one day after present time
var oneDay = new Date('%asset_attribute_start_date%');
oneDay.setDate(oneDay.getDate() + 1);
// Hide button if Show Registration Button metadata field is set to no, or for one day after Webinar took place. Otherwise show Button.
if (number == 1) {
if (eventDate < now && now < oneDay) {
document.getElementById("show").innerHTML = "(Webinar will be uploaded shortly)";
} else {
$('#show').show();
}
} else {
$('#show').hide();
}
// changes button text and link after webinar commences
if (eventDate > now) {
document.getElementById("change").innerHTML = "View Webinar";
document.getElementById("change").href = "secondURL";
}
});
【问题讨论】:
-
%asset_attribute_start_date%的日期是什么格式——我猜这是只有 chrome 能理解的日期字符串格式 -
您好,感谢您的回复...它的 ISO8601 格式,像这样打印到屏幕 2015-11-04 01:30:00
-
如果输入字符串是
2015-11-04 01:30:00,那么firefox将无法解析它,你最终会得到一个Invalid Date -
当你说它“不工作”时,它是做什么的?您在页面或控制台中看到了哪些错误?
-
你能提供一个jsfiddle的例子吗?
标签: javascript jquery