Javascript Modernizer:无法在Firefox中的日期输入上执行datetime()
我使用的是Modernizer,在FireFox中很难用jQueryUIDatePicker代替原生的html5日期输入 这把小提琴显示了我的意思-在FireFox中打开它 在Firefox中打开时,我只得到一个文本输入 代码:Javascript Modernizer:无法在Firefox中的日期输入上执行datetime(),javascript,jquery,firefox,modernizr,Javascript,Jquery,Firefox,Modernizr,我使用的是Modernizer,在FireFox中很难用jQueryUIDatePicker代替原生的html5日期输入 这把小提琴显示了我的意思-在FireFox中打开它 在Firefox中打开时,我只得到一个文本输入 代码: <head> //Include Modernizr - all items are included (full-fat version) <script src="assets/js/vendor/modernizr.js"&
<head>
//Include Modernizr - all items are included (full-fat version)
<script src="assets/js/vendor/modernizr.js"></script>
</head>
<body>
<input
type="date"
id="start-date"
ng-model="someVariable"
format-date
class="form-control date"
/>
<script>
Modernizr.load({
test: Modernizr.inputtypes.date,
nope: ['https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.22/jquery-ui.min.js',
'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.22/themes/smoothness/jquery-ui.css'
],
complete: function () {
$('input[type=date]').datepicker({
dateFormat: 'yy-mm-dd'
});
}
});
</script>
</body>
</html>
//包括现代化-包括所有项目(全fat版本)
现代化负荷({
测试:Modernizer.inputtypes.date,
否:['https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.22/jquery-ui.min.js',
'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.22/themes/smoothness/jquery-ui.css'
],
完成:函数(){
$('input[type=date]')。日期选择器({
日期格式:“yy-mm-dd”
});
}
});
为了确认,当在FireFox中打开Jquery ui时,会下载js和css
我仍然可以在浏览器中看到文本输入——在检查DOM时,它的类型仍然是“date”
我错过什么了吗
非常感谢当您在cdnjs.com上查看的JavaScript时,顶部有一条大评论,上面写道: 因此,您不必在自己的服务器上托管定制的Modernizr构建,还可以包括cdnjs.com上的Modernizr和Yepnope,然后使用这行代码将它们粘合在一起。或者您可以忘记
modernizer.load
而使用yepnope
函数,因为modernizer.load
只是一个别名
另一个问题是,您正在为Modernizer.load
应该获取的脚本使用HTTP URL,这意味着当通过HTTPS访问JSFIDLE时,这些脚本将无法工作。考虑URL,或者更好的是,总是使用HTTPS URL。
↪ 我刚刚在你的*中粘贴了一个简单的Modernizer定制版本,它似乎适用于firefox 但是,我必须改变加载jquery ui css的方式:只需将该cdn替换为所需的主题:
nope: [
'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js',
'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js',
'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css'],
....
user2428118是正确的,因为yenope
未包含在modernizer
的标准开发版本中,这里是自定义版本:
*请原谅我不喜欢粘贴,因为我不想为该小提琴主持自定义构建:)
注
我无意中发布了相同的答案,但它似乎也适用于该问题。我已经检查了该问题(以及许多类似的问题)。我不认为它是重复的,因为我使用complete()函数调用jquery.datetime(),也就是说,我不只是使用Modernizer并希望它被修复?小提琴也…它是重复的,因为您使用完整的功能首先需要测试成功运行。它没有,所以这也不起作用。但是完整的函数确实会被命中。或者这不是你暗示的吗?在你的小提琴中,Modernizer没有初始化:
TypeError:modernizer.load不是一个函数
。也许有问题?我已经在我自己的代码中完成了这项工作——JS Fiddle比代码片段更容易包含(与上面的(Modernizer调用)相同)我包括了一个Modernizer版本,它包含了所有内容,例如完整的fat版本。你在firefox中打开了小提琴吗?@Lee2808当我在firefox中打开小提琴时,日期选择器出现了,只是CSS没有加载,因为没有使用完整的URL。如果这不能解决您的问题,那么它必须特定于您在网站上使用的代码。
Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0));};
nope: [
'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js',
'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js',
'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css'],
....