]> source.dussan.org Git - jquery.git/commit
Selector: Only attach the unload handler in IE & Edge Legacy
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Mon, 10 Jul 2023 16:25:56 +0000 (18:25 +0200)
committerGitHub <noreply@github.com>
Mon, 10 Jul 2023 16:25:56 +0000 (18:25 +0200)
commit87467a6f62b5fbd820ab387836e2a6fb186cbc1b
treee514793b8d53c0521d92884584ba2d6deef4b4da
parent3c18c1f33cfc69e1e1bd1410ab5176b2abc5fe3a
Selector: Only attach the unload handler in IE & Edge Legacy

Both IE & Edge Legacy need the workaround of calling `setDocument()` in an
`unload` handler to avoid "permission denied" errors. However, due to not being
possible to feature-detect this issue, the handler has been applied in all
browsers for windows different than the one in which jQuery was loaded.

jQuery 4.0, which drops Edge Legacy support, guards this workaround with
a `document.documentMode` check. This won't work in the 3.x line due to still
supporting Edge Legacy but we can check for
`document.documentElement.msMatchesSelector` instead as that API is
supported in IE 9+ and all Edge Legacy versions.

Fixes gh-5281
Closes gh-5282
Ref gh-4792
src/selector.js