@glitchr/transparent 1.0.42 → 1.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/js/transparent.js +23 -16
package/package.json
CHANGED
package/src/js/transparent.js
CHANGED
|
@@ -522,10 +522,6 @@
|
|
|
522
522
|
|
|
523
523
|
if(el.target && el.target.tagName == "FORM") {
|
|
524
524
|
|
|
525
|
-
// Action must be prevented here
|
|
526
|
-
// This is specific to form submission
|
|
527
|
-
el.preventDefault();
|
|
528
|
-
|
|
529
525
|
var href = el.target.getAttribute("action");
|
|
530
526
|
if(!href) href = location.pathname + href;
|
|
531
527
|
|
|
@@ -1416,6 +1412,7 @@
|
|
|
1416
1412
|
return elementsXY;
|
|
1417
1413
|
}
|
|
1418
1414
|
|
|
1415
|
+
var formSubmission = false;
|
|
1419
1416
|
function __main__(e) {
|
|
1420
1417
|
|
|
1421
1418
|
// Disable transparent JS (e.g. during development..)
|
|
@@ -1434,7 +1431,15 @@
|
|
|
1434
1431
|
var target = Transparent.isElement(link[2]) ? link[2] : undefined;
|
|
1435
1432
|
var data = Transparent.isElement(link[2]) ? undefined : link[2];
|
|
1436
1433
|
|
|
1434
|
+
// Wait for transparent window event to be triggered
|
|
1435
|
+
if (!isReady) return;
|
|
1436
|
+
|
|
1437
|
+
if (e.type != Transparent.state.POPSTATE &&
|
|
1438
|
+
e.type != Transparent.state.HASHCHANGE && !$(this).find(Settings.identifier).length) return;
|
|
1439
|
+
|
|
1437
1440
|
var form = target != undefined && target.tagName == "FORM" ? target : undefined;
|
|
1441
|
+
formSubmission = false;
|
|
1442
|
+
|
|
1438
1443
|
if (form) {
|
|
1439
1444
|
|
|
1440
1445
|
data = new FormData();
|
|
@@ -1453,16 +1458,15 @@
|
|
|
1453
1458
|
} else data.append(this.name, this.value);
|
|
1454
1459
|
});
|
|
1455
1460
|
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
});
|
|
1459
|
-
}
|
|
1461
|
+
// Force page reload
|
|
1462
|
+
formSubmission = true; // mark as form submission
|
|
1460
1463
|
|
|
1461
|
-
|
|
1462
|
-
|
|
1464
|
+
if ($(e.target).hasClass(Transparent.state.RELOAD)) return;
|
|
1465
|
+
if ($(form).hasClass(Transparent.state.RELOAD)) return;
|
|
1463
1466
|
|
|
1464
|
-
|
|
1465
|
-
|
|
1467
|
+
if(e.type == "submit")
|
|
1468
|
+
$(form).find(':submit').attr('disabled', 'disabled');
|
|
1469
|
+
}
|
|
1466
1470
|
|
|
1467
1471
|
// Specific page exception
|
|
1468
1472
|
for(i = 0; i < Settings.exceptions.length; i++) {
|
|
@@ -1479,7 +1483,7 @@
|
|
|
1479
1483
|
|
|
1480
1484
|
// Unsecure url
|
|
1481
1485
|
if (url.origin != location.origin) return;
|
|
1482
|
-
|
|
1486
|
+
|
|
1483
1487
|
e.preventDefault();
|
|
1484
1488
|
|
|
1485
1489
|
if (url == location) return;
|
|
@@ -1648,13 +1652,15 @@ return;
|
|
|
1648
1652
|
// It is null when dev is pushing or replacing state
|
|
1649
1653
|
var addNewState = !e.state;
|
|
1650
1654
|
if (addNewState) {
|
|
1651
|
-
|
|
1655
|
+
|
|
1652
1656
|
if(history.state)
|
|
1653
|
-
Transparent.
|
|
1657
|
+
Transparent.setResponse(history.state.uuid, Transparent.html[0], Transparent.getScrollableElementXY());
|
|
1654
1658
|
|
|
1655
1659
|
$(Transparent.html).prop("user-scroll", false); // make sure to avoid page jump during transition (cancelled in activeIn callback)
|
|
1656
1660
|
|
|
1657
1661
|
// Submit ajax request..
|
|
1662
|
+
if(form) form.dispatchEvent(new Event("submit"));
|
|
1663
|
+
|
|
1658
1664
|
var xhr = new XMLHttpRequest();
|
|
1659
1665
|
return jQuery.ajax({
|
|
1660
1666
|
url: url.href,
|
|
@@ -1712,8 +1718,9 @@ return;
|
|
|
1712
1718
|
});
|
|
1713
1719
|
});
|
|
1714
1720
|
|
|
1715
|
-
window.onbeforeunload = function() {
|
|
1721
|
+
window.onbeforeunload = function(e) {
|
|
1716
1722
|
|
|
1723
|
+
if(formSubmission) return; // Do not display on form submission
|
|
1717
1724
|
if(Settings.disable) return;
|
|
1718
1725
|
|
|
1719
1726
|
var preventDefault = false;
|