PageSourceSearch

https://public.imyfone.com/assets/js/language_pop_plugin.js

js imyfone.com collected 2026-09-24 09:19:52 UTC 4,751 bytes, 24 lines download raw bytes

1(function(global){"use strict";const utils={md5Token:{time:function(){return new Date().getTime().toString().slice(0,10)},token:function(nowtime){return md5(nowtime+'NAgwtY8Go36r2yJPQ')}}}
2let languageShow=''
3let languages_obj={}
4let pathname=''
5var languagePopPlugin=function(callback){typeof callback=='function'?callback():''}
6languagePopPlugin.prototype={config:{site:'imyfone_en',siteBrand:'imyfone',styleShow:!0,domShow:!0,domHandler(){},completedHandler(){},closeHandler(){},notExecutedHandler(){}},init(){let lang=$('html').attr('lang');const languageMap={'dk':'da','cz':'cs','zh-TW':'tw','zh-Hant':'tw'};languageMap[lang]?lang=languageMap[lang]:'';let browserLanguage=navigator.language;const browserLanguageMap={'nb':'no','zh-TW':'tw','zh-Hant':'tw'}
7browserLanguageMap[browserLanguage]?browserLanguage=browserLanguageMap[browserLanguage]:'';this.getLanguageWrite(browserLanguage,browserLanguage.indexOf(this.getPrimaryLanguageCode(lang))==-1)},setConfig(options){for(let k in options){this.config[k]=options[k]}
8this.init()},getPrimaryLanguageCode(languageCode){return languageCode.split('-')[0]},getLanguageWrite(code,openShow){let _this=this;pathname=window.location.pathname;languageShow=sessionStorage.getItem("languageShow");if(languageShow||!openShow){setTimeout(function(){_this.config.notExecutedHandler()},0)
9return}
10let siteBrand=this.config.siteBrand
11$.get(`https://public.${siteBrand}.com/assets/json/language_${siteBrand}.json`,function(data){let ExecutedActive=!1
12const currentPageUrl=window.location.href
13let pageUrlIndex=Object.values(data.browser_language).some(item=>currentPageUrl===item.website);Object.keys(data.browser_language).forEach(item=>{if(item.split('_')[0]==_this.getPrimaryLanguageCode(code)){languages_obj[item]=data.browser_language[item]
14if(pathname=='/'||pageUrlIndex){_this.config.styleShow?_this.createCss():'';_this.setPopHandler(item,languages_obj[item].direction,siteBrand)}else{_this.getCurrentHref(item,languages_obj[item].siteName,languages_obj[item].direction)}
15if(!ExecutedActive){ExecutedActive=!0}}});if(!ExecutedActive){_this.config.notExecutedHandler()}})},getCurrentHref(key,value,direction){let _this=this;let nowSitme=utils.md5Token.time();let siteBrand=this.config.siteBrand;$.ajax({url:siteBrand==='topmediai'?`https://apis-cms.topmediai.com/api/hreflang/judgeSite`:`https://apis.${siteBrand}.com/api/hreflang/judgeSite`,type:'GET',dataType:'json',data:{site_name:_this.config.site,jump_site_name:value,overview_url:pathname},headers:{"token":utils.md5Token.token(nowSitme),"stime":nowSitme},success:function(res){if(res.code==1){_this.config.styleShow?_this.createCss():'';_this.setPopHandler(key,direction,siteBrand);$('.language-pop .button').attr('href',res.data.url)}else{_this.config.notExecutedHandler()}},error:function(){console.log('error');_this.config.notExecutedHandler()}})},createCss(){let link=document.createElement("link")
16let siteBrand=this.config.siteBrand
17link.type="text/css",link.rel="stylesheet",link.href=`https://public.${siteBrand}.com/assets/css/language_pop_plugin.css`,document.getElementsByTagName("head")[0].appendChild(link)},setPopHandler(language,direction,siteBrand){let _this=this
18let popHtml='<div class="language-pop '+siteBrand+' '+language+' '+direction+'"><div class="language-box"></div></div>';$('body').append(popHtml);this.config.domShow?this.setPopContent(language):this.setPopOther();$(".language-pop .close").click(function(){_this.config.closeHandler();_this.config.notExecutedHandler();$('.language-pop').remove();sessionStorage.setItem("languageShow",0)})
19this.setGATrack()},setPopContent(language){let $contentDom='<p class="tip">'+languages_obj[language].tip+'</p><p class="desc">'+languages_obj[language].desc+'</p><div class="language-bottom language-flex"><a class="button" href='+languages_obj[language].website+' >'+languages_obj[language].button+'</a><div class="close">'+languages_obj[language].close+'</div></div><div class="close-pop close"></div>';$('.language-box').append($contentDom);this.config.completedHandler()},setGATrack(){$(".language-bottom .close").click(function(){dataLayer.push({'event':'language_popup_window','event-action':'continue'})})
20$(".close-pop.close").click(function(){dataLayer.push({'event':'language_popup_window','event-action':'close'})})
21$(".language-bottom .button").click(function(){let href=$(this).attr('href').split('com');dataLayer.push({'event':'language_popup_window','event-action':'regional_site','event-label':href[0]+'com/'})})},setPopOther(){this.config.domHandler()}}
22if(typeof module!=="undefined"&&module.exports)
23module.exports=languagePopPlugin;if(typeof define==="function")
24define(function(){return languagePopPlugin});global.languagePopPlugin=languagePopPlugin})(this)

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.