@@ -4695,6 +4695,23 @@ var htmx = (function() {
46954695 }
46964696 }
46974697
4698+ /**
4699+ * Updates the responseInfo's target property if an HX-Retarget header is present
4700+ *
4701+ * @param {XMLHttpRequest } xhr
4702+ * @param {HtmxResponseInfo } responseInfo
4703+ * @param {Element } elt
4704+ */
4705+ function handleRetargetHeader ( xhr , responseInfo , elt ) {
4706+ if ( hasHeader ( xhr , / H X - R e t a r g e t : / i) ) {
4707+ if ( xhr . getResponseHeader ( "HX-Retarget" ) === "this" ) {
4708+ responseInfo . target = elt
4709+ } else {
4710+ responseInfo . target = asElement ( querySelectorExt ( elt , xhr . getResponseHeader ( "HX-Retarget" ) ) )
4711+ }
4712+ }
4713+ }
4714+
46984715 /**
46994716 * @param {Element } elt
47004717 * @param {HtmxResponseInfo } responseInfo
@@ -4743,13 +4760,8 @@ var htmx = (function() {
47434760 return
47444761 }
47454762
4746- if ( hasHeader ( xhr , / H X - R e t a r g e t : / i) ) {
4747- if ( xhr . getResponseHeader ( 'HX-Retarget' ) === 'this' ) {
4748- responseInfo . target = elt
4749- } else {
4750- responseInfo . target = asElement ( querySelectorExt ( elt , xhr . getResponseHeader ( 'HX-Retarget' ) ) )
4751- }
4752- }
4763+ // handle retargeting before determining history updates/resolving response handling
4764+ handleRetargetHeader ( xhr , responseInfo , elt )
47534765
47544766 const historyUpdate = determineHistoryUpdates ( elt , responseInfo )
47554767
@@ -4767,13 +4779,8 @@ var htmx = (function() {
47674779 }
47684780
47694781 // response headers override response handling config
4770- if ( hasHeader ( xhr , / H X - R e t a r g e t : / i) ) {
4771- if ( xhr . getResponseHeader ( 'HX-Retarget' ) === 'this' ) {
4772- responseInfo . target = elt
4773- } else {
4774- responseInfo . target = asElement ( querySelectorExt ( elt , xhr . getResponseHeader ( 'HX-Retarget' ) ) )
4775- }
4776- }
4782+ handleRetargetHeader ( xhr , responseInfo , elt )
4783+
47774784 if ( hasHeader ( xhr , / H X - R e s w a p : / i) ) {
47784785 swapOverride = xhr . getResponseHeader ( 'HX-Reswap' )
47794786 }
0 commit comments