|
750 | 750 | isPushState, |
751 | 751 | deleteSourceInfo, |
752 | 752 | sameSite, |
753 | | - metadata |
| 753 | + metadata, |
| 754 | + callback |
754 | 755 | ) { |
755 | 756 | if (isPushState) sendOnLeave("" + payload.page_id, trueVar); |
756 | 757 | if (collectDataOnLeave) payload.page_id = uuid(); |
757 | 758 |
|
758 | 759 | var currentPage = definedHostname + getPath(); |
759 | 760 |
|
760 | | - sendData({ |
761 | | - id: payload.page_id, |
762 | | - type: pageviewText, |
763 | | - referrer: !deleteSourceInfo || sameSite ? referrer : null, |
764 | | - query: getQueryParams(deleteSourceInfo), |
765 | | - |
766 | | - /** if metadata **/ |
767 | | - metadata: stringify(metadata), |
768 | | - /** endif **/ |
769 | | - }); |
| 761 | + sendData( |
| 762 | + { |
| 763 | + id: payload.page_id, |
| 764 | + type: pageviewText, |
| 765 | + referrer: !deleteSourceInfo || sameSite ? referrer : null, |
| 766 | + query: getQueryParams(deleteSourceInfo), |
| 767 | + |
| 768 | + /** if metadata **/ |
| 769 | + metadata: stringify(metadata), |
| 770 | + /** endif **/ |
| 771 | + }, |
| 772 | + callback |
| 773 | + ); |
770 | 774 |
|
771 | 775 | previousReferrer = referrer; |
772 | 776 | referrer = currentPage; |
|
776 | 780 |
|
777 | 781 | var sameSite, userNavigated; |
778 | 782 |
|
779 | | - var pageview = function (isPushState, pathOverwrite, metadata) { |
| 783 | + var pageview = function ( |
| 784 | + isPushState, |
| 785 | + pathOverwrite, |
| 786 | + metadata, |
| 787 | + callbackRaw |
| 788 | + ) { |
| 789 | + if (!callbackRaw && isFunction(metadata)) callbackRaw = metadata; |
| 790 | + var callback = isFunction(callbackRaw) ? callbackRaw : function () {}; |
780 | 791 | // Obfuscate personal data in URL by dropping the search and hash |
781 | 792 | var path = getPath(pathOverwrite); |
782 | 793 |
|
|
869 | 880 | isPushState, |
870 | 881 | isPushState || userNavigated || !collectMetricByString("r"), // r = referrers |
871 | 882 | sameSite, |
872 | | - metadata |
| 883 | + metadata, |
| 884 | + callback |
873 | 885 | ); |
874 | 886 | }; |
875 | 887 |
|
|
966 | 978 | if (autoCollect) pageview(); |
967 | 979 |
|
968 | 980 | /** if metadata **/ |
969 | | - window.sa_pageview = function (path, metadata) { |
970 | | - pageview(0, path, metadata); |
| 981 | + window.sa_pageview = function (path, metadata, callback) { |
| 982 | + pageview(0, path, metadata, callback); |
971 | 983 | }; |
972 | 984 | /** else **/ |
973 | | - window.sa_pageview = function (path) { |
974 | | - pageview(0, path); |
| 985 | + window.sa_pageview = function (path, callback) { |
| 986 | + pageview(0, path, undefinedVar, callback); |
975 | 987 | }; |
976 | 988 | /** endif **/ |
977 | 989 |
|
|
0 commit comments