/g,"").replace(/\//g,""),typeof clickList=="object"){let time=calculateVisitTime();event.isTrusted?clickList.push({lastClickDom,time,type:"User manual click"}):clickList.push({lastClickDom,time,type:"Program click"}),clickList=clickList?JSON.stringify(clickList).substring(0,2e3):[]}},!0),window.addEventListener("error",function(e){if(isBlocked)return!1;e.target.tagName==="IMG"&&e.target.src&&holderFile(e.target.src)?loadFailed.push({type:"img_load_error",src:e.target.src}):e.target.tagName==="SCRIPT"&&e.target.src&&holderFile(e.target.src)?loadFailed.push({type:"js_load_error",src:e.target.src}):e.target.tagName==="link"&&e.target.href&&holderFile(e.target.href)&&loadFailed.push({type:"css_load_error",src:e.target.href})},!0),window.onerror=function(errorMessage,scriptURI,lineNumber,columnNumber,errorObj){if(!scriptURI&&!errorObj||scriptURI&&scriptURI.indexOf("chrome-extension")!==-1||isBlocked)return;if(errorObj&&typeof errorObj=="string"&&(errorObj.indexOf("SecurityError")!==-1||errorObj.indexOf(`evaluating 'navigator.serviceWorker.register'`)!==-1))return;const hasSignificanceError=errorSignificanceMessageInfo.some(sign=>errorMessage.includes("Unexpected token "+sign)||errorMessage.includes("unexpected token"+sign));let networkSendStatus=!1;["4g","5g","wifi"].some(item=>navigatorConnection?.effectiveType.includes(item))&&!navigatorConnection?.saveData&&(networkSendStatus=!0),hasSignificanceError&&isChromeNeedCall&&networkSendStatus&&(console.log("%c"+`dom=${lastClickDom}
message=${errorMessage}`,"background: rgba(130,189,174,0.8); color: #fff; font-size: 14px; padding: 2px 10px;"),errorSignificanceMessageArr.push({errorMessage,errorType:"significance",pageType:"",scriptURI:scriptURI?scriptURI.replace(/[?#].*$/,""):"",domMessage:lastClickDom,errorObj:errorObj.toString(),lineNumber,columnNumber,...otherInfo()}),lastClickDom=""),errorMessageArr.push({errorMessage,scriptURI:scriptURI?scriptURI.replace(/[?#].*$/,""):"",lineNumber,columnNumber,errorObj:errorObj.toString(),...otherInfo()}),errorMessageArr=errorMessageArr.filter(obj=>typeof obj.errorObj=="string"&&!obj.errorObj.includes("ReferenceError: Vue is not defined"))},window.addEventListener("load",function(){let mergeErrorMessage=errorMessageArr.concat(errorSignificanceMessageArr);fileLoadFailedFun(),jsExceptionFun(mergeErrorMessage)});function calculateVisitTime(){let endTime=new Date;return(endTime-startTime)/1e3+"s"}function fileLoadFailedFun(){loadFailed.length>0&&monitorFrontFilesFailed({filesInfo:loadFailed}).then(result=>{result&&fileLoadFailedRequestFun(result)}).catch(error=>{console.error(error)})}function fileLoadFailedRequestFun(loadFailedRes){let jqueryFailed=!1,loadFailedFileArray=[];if(loadFailedRes=loadFailedRes?JSON.parse(loadFailedRes):[],loadFailedRes.length>0){for(const k of loadFailedRes)k.src.includes("jquery-")&&k.type==="js_load_error"&&(jqueryFailed=!0),loadFailedFileArray.push(k.src);loadFailedFileArray=loadFailedFileArray.filter((item,index,self)=>self.indexOf(item)===index);let errorMessage=jqueryFailed?"The current page jQuery file does not exist":"Some resource files do not exist";monitorFrontError({errorMessage,pageUrl:window.location.href,pageType:jqueryFailed?"":"",files:loadFailedFileArray,...otherInfo()})}}function jsExceptionFun(errorMessageArr){for(const k of errorMessageArr)k.scriptURI.indexOf(location.origin)>=0&&(k.scriptURI.endsWith(".html")||k.scriptURI.endsWith(".js")||k.scriptURI.endsWith("/"))&&getWebPageSource(k.scriptURI).then(function(webpageSource){let pageTextType=k.scriptURI.endsWith(".html")||k.scriptURI.endsWith("/")||k.scriptURI.endsWith(".js")?"js":"";processHtmlSourceCode(webpageSource,k.lineNumber,pageTextType,k)}).catch(function(error){console.error(error)})}function handleResourceError(errorMessage,resourceSrc){monitorFrontError({errorMessage,pageUrl:window.location.href,src:resourceSrc,...otherInfo()})}function getWebPageSource(url){return new Promise(function(resolve,reject){let xhr=new XMLHttpRequest;xhr.open("GET",url),xhr.onload=function(){xhr.status===200?resolve(xhr.responseText):reject("HTTP request failed with status code "+xhr.status)},xhr.onerror=function(){reject("Error fetching web page")},xhr.send()})}function processHtmlSourceCode(htmlSourceCode,targetLineNumber,pageTextType,info){if(pageTextType==="html"){const parser=new DOMParser,doc=parser.parseFromString(htmlSourceCode,"text/html"),lines=doc.documentElement.innerHTML.split(`
`);getErrorSendTo(lines,targetLineNumber,info)}if(pageTextType==="js"){const lines=htmlSourceCode.split(`
`);getErrorSendTo(lines,targetLineNumber,info)}}function getErrorSendTo(lines="",targetLineNumber=0,dataJson){var k,code="";if(lines===""||targetLineNumber===0)return!1;for(k=0;k{xhrRequestError({method:"POST",url:window.location.href,headers:{"Content-Type":"application/json","X-October-Request-Handler":"onGetFrontInfo","X-Requested-With":"XMLHttpRequest"},data:dataJson}).then(function(response){console.log(response),resolve(response)}).catch(function(error){console.error(error),reject(error)})})}function monitorFrontError(dataJson){xhrRequestError({method:"POST",url:window.location.href,headers:{"Content-Type":"application/json","X-October-Request-Handler":"onMonitorFrontError","X-Requested-With":"XMLHttpRequest"},data:dataJson}).then(function(response){showErrorNotification("JsError",dataJson.errorMessage),console.log(response)}).catch(function(error){console.error(error)})}function monitorFrontFilesFailed(dataJson){return new Promise((resolve,reject)=>{xhrRequestError({method:"POST",url:window.location.href,headers:{"Content-Type":"application/json","X-October-Request-Handler":"onMonitorFrontFilesFailed","X-Requested-With":"XMLHttpRequest"},data:dataJson}).then(function(response){let res=JSON.parse(response);for(const k in res)showErrorNotification("Some resource files do not exist",res[k].src);resolve(response)}).catch(function(error){reject(error)})})}function xhrRequestError(options){return new Promise(function(resolve,reject){var xhr=new XMLHttpRequest,header;if(xhr.open(options.method,options.url,!0),xhr.onload=function(){xhr.status>=200&&xhr.status<300?resolve(xhr.responseText):reject(xhr.statusText)},xhr.onerror=function(){reject(xhr.statusText)},options.headers)for(header in options.headers)xhr.setRequestHeader(header,options.headers[header]);options.data?xhr.send(JSON.stringify(options.data)):xhr.send()})}function holderFile(url=""){let isHolderArray=["dist/","assets/","files/"],isDomain=verifyAddressIsDomain({src:url});return isHolderArray.some(item=>url.includes(item))&&isDomain}function getCookieValError(name){var prefix=name+"=",end,value,start=document.cookie.indexOf(prefix);return start==-1?"":(end=document.cookie.indexOf(";",start+prefix.length),end==-1&&(end=document.cookie.length),value=document.cookie.substring(start+prefix.length,end),unescape(value))}function verifyAddressIsDomain(obj){if(obj?.src){let src=obj.src.toString(),origin=location.origin;return src.indexOf(origin)>=0}}}catch(e){console.error(e)}多色展開無地切り替え曲がった手元まっすぐな手元傘 - girlooks
綺麗です。よく愛用しています。値段も満足です。買ってよかったと思います。ありがとうございました。
写真通りでした。デザインも可愛くて満足して使っています。
期待した通りの品物で嬉しいです!
今度は色違いで欲しいな~と。
レビュー遅くてすみませんm(*_ _)m
ピンクを使っていたが長い時間を使うこと留め具の所から雨漏りしてしまう為、またリピート購入しました。今回は紫。
淡い色で気にいっています
ちょうど雨の日に届きました。 お安いので撥水などはそれなりではありますが、 大きめで軽く使いやすい傘です。
以前使っていた傘は同じ大きさでも重い物でした。今回は軽く値段も安いのでコスパは良いと思います。
重宝しそうです!楽しいです。
今持っているのがエンジなので、今回はパープルにしました。どんな色かドキドキしましたが、思っていた色だったので安心しました。重さも気になりません。大きくて頼りになりそうです。雨、楽しみです!
総合的には気に入ったので、大事に使おうと思う。買ってから雨が降っておらず、ちょっと強めの雨が降ってくれるといいのですがねw
こんなに大きいとは思ってないかったのですが、これなら相合傘としても使えますねwとてもしっかりしている。買う前は少々重いのかなと思ったが、重さはあまり感じない。見た目も黒で統一されオシャレだと思います。