|
787 | 787 | } |
788 | 788 | return null; |
789 | 789 | }, |
790 | | - set: function(name, value, days) { |
| 790 | + set: function(name, value, days, domain) { |
791 | 791 | if (days) { |
792 | 792 | var date = new Date(); |
793 | 793 | date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); |
794 | 794 | var expires = '; expires=' + date.toGMTString(); |
795 | 795 | } else { |
796 | 796 | var expires = ''; |
797 | 797 | } |
798 | | - document.cookie = name + '=' + value + expires + '; path=/'; |
| 798 | + var cookieString = name + '=' + value + expires + '; path=/' + (domain ? (";domain=" + domain) : ""); |
| 799 | + document.cookie = cookieString; |
799 | 800 | }, |
800 | | - remove: function(name) { |
801 | | - Cookie.set(name, '', -1); |
| 801 | + remove: function(name, domain) { |
| 802 | + Cookie.set(name, '', -1, domain); |
802 | 803 | } |
803 | 804 | }; |
804 | 805 |
|
|
812 | 813 | cookieName: 'amplitude_id', |
813 | 814 | cookieExpiration: 365 * 10, |
814 | 815 | unsentKey: 'amplitude_unsent', |
815 | | - saveEvents: true |
| 816 | + saveEvents: true, |
| 817 | + domain: '' |
816 | 818 | }; |
817 | 819 |
|
818 | 820 | var eventId = 0; |
|
841 | 843 | } |
842 | 844 | } |
843 | 845 |
|
844 | | - // Load cookie data |
845 | | - var cookie = Cookie.get(options.cookieName); |
846 | | - var cookieData = null; |
847 | | - if (cookie) { |
848 | | - try { |
849 | | - cookieData = JSON.parse(Base64.decode(cookie)); |
850 | | - if (cookieData) { |
851 | | - if (cookieData.deviceId) { |
852 | | - options.deviceId = cookieData.deviceId; |
853 | | - } |
854 | | - if (cookieData.userId) { |
855 | | - options.userId = cookieData.userId; |
856 | | - } |
857 | | - if (cookieData.globalUserProperties) { |
858 | | - options.globalUserProperties = cookieData.globalUserProperties; |
859 | | - } |
860 | | - } |
861 | | - } catch (e) { |
862 | | - //log(e); |
863 | | - } |
864 | | - } |
| 846 | + loadCookieData(); |
865 | 847 |
|
866 | 848 | options.deviceId = options.deviceId || UUID(); |
867 | 849 | options.userId = (opt_userId !== undefined && opt_userId !== null && opt_userId) || options.userId || null; |
|
889 | 871 | } |
890 | 872 | }; |
891 | 873 |
|
| 874 | + var loadCookieData = function() { |
| 875 | + var cookie = Cookie.get(options.cookieName); |
| 876 | + var cookieData = null; |
| 877 | + if (cookie) { |
| 878 | + try { |
| 879 | + cookieData = JSON.parse(Base64.decode(cookie)); |
| 880 | + if (cookieData) { |
| 881 | + if (cookieData.deviceId) { |
| 882 | + options.deviceId = cookieData.deviceId; |
| 883 | + } |
| 884 | + if (cookieData.userId) { |
| 885 | + options.userId = cookieData.userId; |
| 886 | + } |
| 887 | + if (cookieData.globalUserProperties) { |
| 888 | + options.globalUserProperties = cookieData.globalUserProperties; |
| 889 | + } |
| 890 | + } |
| 891 | + } catch (e) { |
| 892 | + //log(e); |
| 893 | + } |
| 894 | + } |
| 895 | + }; |
| 896 | + |
892 | 897 | var saveCookieData = function() { |
893 | 898 | Cookie.set(options.cookieName, Base64.encode(JSON.stringify({ |
894 | 899 | deviceId: options.deviceId, |
895 | 900 | userId: options.userId, |
896 | 901 | globalUserProperties: options.globalUserProperties |
897 | | - })), options.cookieExpiration); |
| 902 | + })), options.cookieExpiration, options.domain); |
898 | 903 | }; |
899 | 904 |
|
900 | 905 | var saveEvents = function() { |
|
905 | 910 | } |
906 | 911 | }; |
907 | 912 |
|
| 913 | + Amplitude.prototype.setDomain = function(domain) { |
| 914 | + try { |
| 915 | + options.domain = (domain !== undefined && domain !== null && ('' + domain)) || null; |
| 916 | + options.cookieName = "amplitude_id" + (options.domain || ''); |
| 917 | + loadCookieData(); |
| 918 | + saveCookieData(); |
| 919 | + //log('set domain=' + domain); |
| 920 | + } catch (e) { |
| 921 | + log(e); |
| 922 | + } |
| 923 | + }; |
| 924 | + |
908 | 925 | Amplitude.prototype.setUserId = function(userId) { |
909 | 926 | try { |
910 | 927 | options.userId = (userId !== undefined && userId !== null && ('' + userId)) || null; |
|
0 commit comments