Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Modernizer:无法在Firefox中的日期输入上执行datetime()_Javascript_Jquery_Firefox_Modernizr - Fatal编程技术网

Javascript Modernizer:无法在Firefox中的日期输入上执行datetime()

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"&

我使用的是Modernizer,在FireFox中很难用jQueryUIDatePicker代替原生的html5日期输入

这把小提琴显示了我的意思-在FireFox中打开它 在Firefox中打开时,我只得到一个文本输入

代码:

<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'],
    ....