1/** 2 * @file cms.smartphone.js 3 * @breif ã¹ãã¼ããã©ã³èªåæ¯ãåããªã©ã®JavaScript. 4 * @date 2011/07/16 5 * @charset UTF-8 6 * 7 * Copyright(C) Hitachi Government & Public Corporation 8 * System Engineering, Ltd. 2011. All rights reserved. 9 * 10 * <p>ä¾åããã©ã¤ãã©ãª 11 * <ul> 12 * <li>jquery.js(1.2+)</li> 13 * <li>jquery.cookie.js</li> 14 * </ul> 15 * </p> 16 * 17 */ 18// åå空éã®å®ç¾©:cms 19var cms; 20if(!cms) 21 cms = {}; 22else if(typeof cms != "object") 23 throw new Error("cms already exits and is not an object"); 24 25// åå空éã®å®ç¾©:cms.smartphone 26if(!cms.smartphone) 27 cms.smartphone = {}; 28else if(typeof cms.smartphone != "object") 29 throw new Error("cms.smartphone already exits and is not an object"); 30 31// 確èªãã¤ã¢ãã°ã¡ãã»ã¼ã¸ã®å®ç¾© 32var DISPATCH_MESSAGE = { 33 ja: 'ãã®ã³ã³ãã³ãã«ã¯ãã¹ãã¼ããã©ã³å°ç¨ã®ãã¼ã¸ãããã¾ãã\n表示ãã¾ããï¼', 34 en: 'ãã®ã³ã³ãã³ãã«ã¯ãã¹ãã¼ããã©ã³å°ç¨ã®ãã¼ã¸ãããã¾ãã\n表示ãã¾ããï¼', 35 zh: 'ãã®ã³ã³ãã³ãã«ã¯ãã¹ãã¼ããã©ã³å°ç¨ã®ãã¼ã¸ãããã¾ãã\n表示ãã¾ããï¼', 36 ko: 'ãã®ã³ã³ãã³ãã«ã¯ãã¹ãã¼ããã©ã³å°ç¨ã®ãã¼ã¸ãããã¾ãã\n表示ãã¾ããï¼' 37}; 38 39var COOKIE_KEY_DISPATCH = 'cms_smartphone_dispatch'; 40 41/** 42 * æå®ããURLã«å¯¾ããæ¯ãåãããè¡ãã 43 * <p>iPhoneãAndroidã®å ´åã¯æ¯ãåããè¡ãã 44 * 45 * @param url æ¯ãåãå ã®URL[string](å¿ é ) 46 * @param langaugeCd[string] 47 * @param onPreview CMSã®ãã¬ãã¥ã¼å¦çãã©ãã[boolean] 48 * 49 */ 50cms.smartphone.dispatch = function(url, languageCd, onPreview) { 51 // ãã¬ãã¥ã¼å¦çã®å ´åãä½ãããªã 52 if((onPreview != undefined || onPreview != null) && onPreview == true) { 53 return; 54 } 55 56 // URLãæå®ããã¦ããªãå ´åãä½ãããªã 57 if(url == undefined || url == null || url == "") { 58 return; 59 } 60 61 if(languageCd == undefined 62 || languageCd == null 63 || languageCd == "" 64 || !(languageCd in DISPATCH_MESSAGE)) { 65 langaugeCd = 'ja'; 66 } 67 68 // ã¦ã¼ã¶ã¨ã¼ã¸ã§ã³ãã®ãã§ã㯠69 if(!cms.smartphone.isSmartphone()) { 70 // ã¹ãã¼ããã©ã³ç¨ãã¼ã¸ããé·ç§»ããå ´åã¯ãæ¯ãåãããªãã 71 return; 72 } 73
74 // é·ç§»å ã®ãã§ã㯠75 if(cms.smartphone.isSameUrlWithFrom(url)) { 76 return; 77 } 78 79 var cookieEnabled = navigator.cookieEnabled 80 if(cookieEnabled == null || cookieEnabled == undefined || navigator.cookieEnabled == false) { 81 // Cookieãç¡å¹ã®å ´åãå¼·å¶çã«é·ç§»ããã 82 location.href = url; 83 return; 84 } 85 86 // Cookieã®åå¾ã¨å¤å® 87 var beforeDispatched = $.cookie(COOKIE_KEY_DISPATCH); 88 if(beforeDispatched == undefined || beforeDispatched == null) { 89 // Cookieã®å¤ãè¦ã¤ãããªãå ´å 90 var msg = DISPATCH_MESSAGE[languageCd]; 91 if(confirm(msg)) { 92 // Cookieã®ä¿å 93 $.cookie(COOKIE_KEY_DISPATCH, 'true'); 94 95 // ç»é¢é·ç§» 96 location.href = url; 97 return; 98 99 } else { 100 // Cookieã®ä¿å 101 $.cookie(COOKIE_KEY_DISPATCH, 'false'); 102 return; 103 } 104 105 } else if(beforeDispatched == 'true') { 106 // ååãtrueã¨çãå ´å 107 location.href = url; 108 return; 109 } else { 110 // ååãfalseã¨çããå ´å 111 return; 112 } 113 114} 115 116/** 117 * ç¾å¨ã¢ã¯ã»ã¹ãã¦ããæ©å¨ãã¹ãã¼ããã©ã³ãã©ãããã§ãã¯ãã 118 * 119 * @return true:ã¹ãã¼ããã©ã³ã®å ´å 120 */ 121cms.smartphone.isSmartphone = function() { 122 var userAgent = navigator.userAgent; 123 if((userAgent.indexOf('iPhone') > 0 && userAgent.indexOf('iPad') == -1) // iPadãé¤ãiOS 124 || userAgent.indexOf('iPod') > 0 // iPod touch 125 || userAgent.indexOf('Android') > 0) { 126 return true; 127 } 128 129} 130 131/** 132 * é·ç§»å ã®URLã¨åããã©ããããªãã¡ã©ã¼ãå ã«æ¯è¼ããã 133 * 134 * @param url: æ¯è¼å¯¾è±¡ã®URL
135 * @return true: é·ç§»å ã®URLã¨çããã 136 */ 137cms.smartphone.isSameUrlWithFrom = function(url) { 138 139 var referrerUrl = document.referrer; 140 if(referrerUrl == null || referrerUrl.length == 0) { 141 return false; 142 } 143 144 if(referrerUrl.indexOf(url) >= 0) { 145 return true; 146 } 147 148 // æ¯è¼å¯¾è±¡ã®URLããindex.htmlã§å§ã¾ãããªãã¡ã©ã¼ã§ã/index.htmlããçç¥ããã¦ããå ´å 149 if(url.lastIndexOf("/index.html") >=0 && referrerUrl.indexOf("/index.html") < 0) { 150 var compUrl = url.replace("/index.html", "/"); 151 if(referrerUrl.indexOf(compUrl) >= 0) { 152 return true; 153 } 154 } 155 156 return false; 157 158} 159
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.