????????????????? URL rewriter ?????
????JavaScript
????function redirectTo(url) {
????if (url.charAt(0) === "#") {
????window.location.hash = url;
????} else if (url.charAt(0) === "/") {
????window.location.pathname = url;
????} else {
????window.location.href = url;
????}
????}
????function redirectTo(url) {
????if (url.charAt(0) === "#") {
????window.location.hash = url;
????} else if (url.charAt(0) === "/") {
????window.location.pathname = url;
????} else {
????window.location.href = url;
????}
????}
???????????е???????????????????????????????? redirecter ??????????????????????????????? window ??????????2??????????????????????????????????
??????????????汾??
????JavaScript
????function _getRedirectPart(url) {
????if (url.charAt(0) === "#") {
????return "hash";
????} else if (url.charAt(0) === "/") {
????return "pathname";
????} else {
????return "href";
????}
????}
????function redirectTo(url) {
????window.location[_getRedirectPart(url)] = url;
????}
????function _getRedirectPart(url) {
????if (url.charAt(0) === "#") {
????return "hash";
????} else if (url.charAt(0) === "/") {
????return "pathname";
????} else {
????return "href";
????}
????}
????function redirectTo(url) {
????window.location[_getRedirectPart(url)] = url;
????}
?????????????????? _getRedirectPart ??д???????????????
????JavaScript
????test("_getRedirectPart"?? function() {
????equal(_getRedirectPart("#foo")?? "hash");
????equal(_getRedirectPart("/foo")?? "pathname");
????equal(_getRedirectPart("http://foo.com")?? "href");
????});
????test("_getRedirectPart"?? function() {
????equal(_getRedirectPart("#foo")?? "hash");
????equal(_getRedirectPart("/foo")?? "pathname");
????equal(_getRedirectPart("http://foo.com")?? "href");
????});
????????????? redirectTo ?????????????????????????????????????????????
?????????????????????????? performRedirect ???????????????????????????и????????????????????????????????????????????????????????????????????? QUnit ??????????ú????????????????????????????????????и?????????????????ο??????????
??????д????????
??????????????????飬??????????????????????д????????????д?????????????????????????????????????????????д??????? QUnit ??????д??????????????????????? testCases ??????????? test ???п??????????????????????????????????????/???????????????????????????????????/?????????????????????????????
????JavaScript
????function testCases(fn?? context?? tests) {
????for (var i = 0; i < tests.length; i++) {
????same(fn.apply(context?? tests[i][0])?? tests[i][1]??
????tests[i][2] || JSON.stringify(tests[i]));
????}
????}
????function testCases(fn?? context?? tests) {
????for (var i = 0; i < tests.length; i++) {
????same(fn.apply(context?? tests[i][0])?? tests[i][1]??
????tests[i][2] || JSON.stringify(tests[i]));
????}
????}
?????????????????????????
????JavaScript
????test("foo"?? function() {
????testCases(foo?? null?? [
????[["bar"?? "baz"]?? "barbaz"]??
????[["bar"?? "bar"]?? "barbar"?? "a passing test"]
????]);
????});
????test("foo"?? function() {
????testCases(foo?? null?? [
????[["bar"?? "baz"]?? "barbaz"]??
????[["bar"?? "bar"]?? "barbar"?? "a passing test"]
????]);
????});
???????
?????????????JavaScript?к???д?????????????????鼮?к?????????????????????????????????????????e????????????????????????????????????????????????????????????飬????????