@@ -25,6 +25,10 @@ var _ = sd._ = {};
2525 // 默认配置
2626 sd . para = sd . para || { } ;
2727 sd . para_default = {
28+ // referrer字符串截取
29+ max_referrer_string_length :800 ,
30+ //通用字符串截取,超过7000的字符串会导致url超长发不出去,所以限制长度
31+ max_string_length : 1000 ,
2832// send_error_event: true,
2933 cross_subdomain : true ,
3034 show_log : true ,
@@ -610,7 +614,9 @@ var _ = sd._ = {};
610614 , slice = ArrayProto . slice
611615 , toString = ObjProto . toString
612616 , hasOwnProperty = ObjProto . hasOwnProperty
613- , LIB_VERSION = '1.5.6' ;
617+ , LIB_VERSION = '1.5.7' ;
618+
619+ sd . lib_version = LIB_VERSION ;
614620
615621// 提供错误日志
616622 var error_msg = [ ] ;
@@ -847,6 +853,7 @@ var _ = sd._ = {};
847853 + pad ( d . getMilliseconds ( ) ) ;
848854 } ;
849855
856+ // 把日期格式全部转化成日期字符串
850857 _ . searchObjDate = function ( o ) {
851858 if ( _ . isObject ( o ) ) {
852859 _ . each ( o , function ( a , b ) {
@@ -860,6 +867,33 @@ var _ = sd._ = {};
860867 } ) ;
861868 }
862869 } ;
870+ // 把字符串格式数据限制字符串长度
871+ _ . formatString = function ( str ) {
872+ if ( str . length > sd . para . max_string_length ) {
873+ logger . info ( '字符串长度超过限制,已经做截取--' + str ) ;
874+ return str . slice ( 0 , sd . para . max_string_length ) ;
875+ } else {
876+ return str ;
877+ }
878+ } ;
879+
880+ // 把字符串格式数据限制字符串长度
881+ _ . searchObjString = function ( o ) {
882+ if ( _ . isObject ( o ) ) {
883+ _ . each ( o , function ( a , b ) {
884+ if ( _ . isObject ( a ) ) {
885+ _ . searchObjString ( o [ b ] ) ;
886+ } else {
887+ if ( _ . isString ( a ) ) {
888+ o [ b ] = _ . formatString ( a ) ;
889+ }
890+ }
891+ } ) ;
892+ }
893+ } ;
894+
895+
896+
863897// 数组去重复
864898 _ . unique = function ( ar ) {
865899 var temp , n = [ ] , o = { } ;
@@ -1634,6 +1668,7 @@ var _ = sd._ = {};
16341668 }
16351669 }
16361670 _ . searchObjDate ( data ) ;
1671+ _ . searchObjString ( data ) ;
16371672 //判断是否要给数据增加新用户属性
16381673 saNewUser . checkIsAddSign ( data ) ;
16391674 saNewUser . checkIsFirstTime ( data ) ;
@@ -1778,15 +1813,15 @@ var _ = sd._ = {};
17781813 } ,
17791814 //set init referrer
17801815 setInitReferrer : function ( ) {
1781- var _referrer = document . referrer ;
1816+ var _referrer = ( document . referrer ) . slice ( 0 , sd . para . max_referrer_string_length ) ;
17821817 sd . setOnceProfile ( {
17831818 _init_referrer : _referrer ,
17841819 _init_referrer_domain : _ . info . referringDomain ( _referrer )
17851820 } ) ;
17861821 } ,
17871822 // set init sessionRegister cookie
17881823 setSessionReferrer : function ( ) {
1789- var _referrer = document . referrer ;
1824+ var _referrer = ( document . referrer ) . slice ( 0 , sd . para . max_referrer_string_length ) ;
17901825 store . setSessionPropsOnce ( {
17911826 _session_referrer : _referrer ,
17921827 _session_referrer_domain : _ . info . referringDomain ( _referrer )
@@ -1796,7 +1831,7 @@ var _ = sd._ = {};
17961831 setDefaultAttr : function ( ) {
17971832 _ . info . register ( {
17981833 _current_url : location . href ,
1799- _referrer : document . referrer ,
1834+ _referrer : ( document . referrer ) . slice ( 0 , sd . para . max_referrer_string_length ) ,
18001835 _referring_domain : _ . info . referringDomain ( document . referrer )
18011836 } ) ;
18021837 } ,
@@ -1815,15 +1850,15 @@ var _ = sd._ = {};
18151850 if ( is_first_visitor ) {
18161851 sd . setOnceProfile ( _ . extend ( {
18171852 $first_visit_time : new Date ( ) ,
1818- $first_referrer : document . referrer ,
1853+ $first_referrer : ( document . referrer ) . slice ( 0 , sd . para . max_referrer_string_length ) ,
18191854 $first_browser_language : navigator . language ,
18201855 $first_referrer_host : _ . info . referringDomain ( document . referrer )
18211856 } , $utms )
18221857 ) ;
18231858 }
18241859 // trackpageview
18251860 sd . track ( '$pageview' , _ . extend ( {
1826- $referrer : document . referrer ,
1861+ $referrer : ( document . referrer ) . slice ( 0 , sd . para . max_referrer_string_length ) ,
18271862 $referrer_host : _ . info . referringDomain ( document . referrer ) ,
18281863 $url : location . href ,
18291864 $url_path : location . pathname ,
0 commit comments