使用以下函数,此脚本询问浏览器是否<input type="date">
本机可用。如果没有,它将从 CDN 加载 jQuery UI。
$(document).ready(function(event){
// Date Picker with fallback
// http://diveintohtml5.info/forms.html#type-date
var i = document.createElement("input");
i.setAttribute("type", "date");
if (i.type == "text") {
// No native date picker support :(
// Use jQuery UI to create one then dynamically replace that <input> element.
var jQueryUICSS = document.createElement('link');
jQueryUICSS.href = "http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css";
jQueryUICSS.rel = "stylesheet";
document.getElementsByTagName('head')[0].appendChild(jQueryUICSS);
$.getScript("http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js", function() {
$.datepicker.setDefaults(
$.extend($.datepicker.regional[''])
);
});
}
});
我想做的是使用Paul Irish 定义的 Protocol Relative 方法确保 CSS 和 JS 的本地回退,但使用类似于此的HTML5 Boilerplate的更新版本:
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-ui.min.js"><\/script>')</script>
在原始示例中,Javascript 正在创建一个link
仅指向 jquery 网站的元素。我不太确定如何编写此协议相关方法的第二行并使用 javascript 创建它。
同样,该方法正在添加 jQuery UI js 文件getScript()
。如何添加仍允许$.datepicker()
按预期加载的此文件的本地版本?我不得不使用getScript()
,因为如果我不使用 datepicker 会抛出一个控制台错误,说它是未定义的。
我如何将这种本地文件的后备方法包含到我已经写出的代码中?