Don't reset <head>
when using injectHTML
#631
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed this bug while trying to update
@cloudfour/patterns
. This is a bug introduced in 3.0.0 when I switched the default implementation ofinjectHTML
to usedocument.write
instead ofdocument.body.innerHTML = ...
.When calling
injectHTML
, scripts/stylesheets and other changes tohead
would get reset back to the default/initial contents ofhead
instead of being left alone.The documented behavior of
injectHTML
is "Set the contents ofdocument.body
." (and I think this makes sense). This PR removes the accidental additional behavior of resetting<head>
.Most of this PR is updating the tests to also snapshot the
<head>
, as well as one new test for an edge case to make sure that<head>
is not modified or re-evaluated wheninjectHTML
is called.