summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDenis Palashevskii <20725046+Renerick@users.noreply.github.com>2024-03-14 04:34:13 +0400
committerGitHub <noreply@github.com>2024-03-13 18:34:13 -0600
commit263c37e85ccc14c9d374a8f267f8075fce77ae2f (patch)
tree787fcad4ef281a2978e7d2a0f1cc68ab8f4af165
parentef791c51ebf6407ebc757df84b9f695b9f6930dc (diff)
downloadhtmx-263c37e85ccc14c9d374a8f267f8075fce77ae2f.tar.gz
htmx-263c37e85ccc14c9d374a8f267f8075fce77ae2f.zip
WS.js fix for Safari on iOS 17.4 (#2391)
* ws.js: use event.detail.elt as fallback value for event.target Implemented after Safari on iOS 17.4 broke event.target for custom events. Reported in https://discord.com/channels/725789699527933952/1216185723229704222 * also fix sse.js #2388
-rw-r--r--src/ext/sse.js5
-rw-r--r--src/ext/ws.js5
2 files changed, 5 insertions, 5 deletions
diff --git a/src/ext/sse.js b/src/ext/sse.js
index 473f23da..28c4dd32 100644
--- a/src/ext/sse.js
+++ b/src/ext/sse.js
@@ -37,10 +37,11 @@ This extension adds support for Server Sent Events to htmx. See /www/extensions
*/
onEvent: function(name, evt) {
+ var parent = evt.target || evt.detail.elt;
switch (name) {
case "htmx:beforeCleanupElement":
- var internalData = api.getInternalData(evt.target)
+ var internalData = api.getInternalData(parent)
// Try to remove remove an EventSource when elements are removed
if (internalData.sseEventSource) {
internalData.sseEventSource.close();
@@ -50,7 +51,7 @@ This extension adds support for Server Sent Events to htmx. See /www/extensions
// Try to create EventSources when elements are processed
case "htmx:afterProcessNode":
- ensureEventSourceOnElement(evt.target);
+ ensureEventSourceOnElement(parent);
}
}
});
diff --git a/src/ext/ws.js b/src/ext/ws.js
index 05be1eca..c1e29620 100644
--- a/src/ext/ws.js
+++ b/src/ext/ws.js
@@ -38,13 +38,14 @@ This extension adds support for WebSockets to htmx. See /www/extensions/ws.md f
* @param {Event} evt
*/
onEvent: function (name, evt) {
+ var parent = evt.target || evt.detail.elt;
switch (name) {
// Try to close the socket when elements are removed
case "htmx:beforeCleanupElement":
- var internalData = api.getInternalData(evt.target)
+ var internalData = api.getInternalData(parent)
if (internalData.webSocket) {
internalData.webSocket.close();
@@ -53,8 +54,6 @@ This extension adds support for WebSockets to htmx. See /www/extensions/ws.md f
// Try to create websockets when elements are processed
case "htmx:beforeProcessNode":
- var parent = evt.target;
-
forEach(queryAttributeOnThisOrChildren(parent, "ws-connect"), function (child) {
ensureWebSocket(child)
});