|
476 | 476 | var collectDataOnLeave = |
477 | 477 | collectMetricByString("t") || collectMetricByString("scro"); |
478 | 478 |
|
479 | | - var payload = { |
| 479 | + var basePayload = { |
480 | 480 | version: version, |
| 481 | + hostname: definedHostname, |
| 482 | + }; |
| 483 | + |
| 484 | + if (bot) basePayload.bot = trueVar; |
| 485 | + |
| 486 | + var payload = assign(basePayload, { |
481 | 487 | // us = useragent |
482 | 488 | ua: collectMetricByString("us") ? userAgent : undefinedVar, |
| 489 | + |
483 | 490 | https: loc.protocol == https, |
484 | 491 | timezone: timezone, |
485 | | - hostname: definedHostname, |
486 | 492 | page_id: collectDataOnLeave ? uuid() : undefinedVar, |
| 493 | + |
487 | 494 | // se = sessions |
488 | 495 | session_id: collectMetricByString("se") ? uuid() : undefinedVar, |
489 | | - }; |
490 | | - if (bot) payload.bot = trueVar; |
| 496 | + }); |
491 | 497 |
|
492 | 498 | /** if sri **/ |
493 | 499 | payload.sri = trueVar; |
|
581 | 587 | var sendOnLeave = function (id, push) { |
582 | 588 | if (!collectDataOnLeave) return; |
583 | 589 |
|
584 | | - var append = { |
| 590 | + var append = assign(basePayload, { |
585 | 591 | type: "append", |
586 | | - hostname: definedHostname, |
587 | 592 | original_id: push ? id : payload.page_id, |
588 | | - }; |
| 593 | + }); |
589 | 594 |
|
590 | 595 | /** if duration **/ |
591 | 596 | // t = timeonpage |
|
770 | 775 | var navigationText = "navigation"; |
771 | 776 |
|
772 | 777 | // Check if back, forward or reload buttons are being used in modern browsers |
773 | | - var userNavigated = |
774 | | - perf && |
775 | | - perf.getEntriesByType && |
776 | | - perf.getEntriesByType(navigationText)[0] && |
777 | | - perf.getEntriesByType(navigationText)[0].type |
778 | | - ? ["reload", "back_forward"].indexOf( |
779 | | - perf.getEntriesByType(navigationText)[0].type |
780 | | - ) > -1 |
781 | | - : // Check if back, forward or reload buttons are being use in older browsers |
782 | | - // 1: TYPE_RELOAD, 2: TYPE_BACK_FORWARD |
783 | | - perf && |
784 | | - perf[navigationText] && |
785 | | - [1, 2].indexOf(perf[navigationText].type) > -1; |
| 778 | + var performaceEntryType; |
| 779 | + try { |
| 780 | + performaceEntryType = perf.getEntriesByType(navigationText)[0].type; |
| 781 | + } catch (error) { |
| 782 | + // Do nothing |
| 783 | + } |
| 784 | + |
| 785 | + var userNavigated = performaceEntryType |
| 786 | + ? ["reload", "back_forward"].indexOf(performaceEntryType) > -1 |
| 787 | + : // Check if back, forward or reload buttons are being use in older browsers |
| 788 | + // 1: TYPE_RELOAD, 2: TYPE_BACK_FORWARD |
| 789 | + perf && |
| 790 | + perf[navigationText] && |
| 791 | + [1, 2].indexOf(perf[navigationText].type) > -1; |
786 | 792 |
|
787 | 793 | // Check if referrer is the same as current real hostname (not the defined hostname!) |
788 | 794 | /** if nonuniquehostnames **/ |
|
0 commit comments