diff options
author | Denis Palashevskii <20725046+Renerick@users.noreply.github.com> | 2024-03-14 04:34:13 +0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-13 18:34:13 -0600 |
commit | 263c37e85ccc14c9d374a8f267f8075fce77ae2f (patch) | |
tree | 787fcad4ef281a2978e7d2a0f1cc68ab8f4af165 | |
parent | ef791c51ebf6407ebc757df84b9f695b9f6930dc (diff) | |
download | htmx-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.js | 5 | ||||
-rw-r--r-- | src/ext/ws.js | 5 |
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) }); |