Commit efd0fce7 authored by jaubourg's avatar jaubourg

Fixes #9109. When jQuery is loaded in the body, then the fake body element...

Fixes #9109. When jQuery is loaded in the body, then the fake body element used in support has to be inserted before the document's body for boxModel to be properly detected (got the hint by looking at the code in jQuery mobile). Test page added so that we can keep checking this.
parent 18b1cf29
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
jQuery.support = (function() { jQuery.support = (function() {
var div = document.createElement( "div" ), var div = document.createElement( "div" ),
documentElement = document.documentElement,
all, all,
a, a,
select, select,
...@@ -150,7 +151,7 @@ jQuery.support = (function() { ...@@ -150,7 +151,7 @@ jQuery.support = (function() {
body.style[ i ] = bodyStyle[ i ]; body.style[ i ] = bodyStyle[ i ];
} }
body.appendChild( div ); body.appendChild( div );
document.documentElement.appendChild( body ); documentElement.insertBefore( body, documentElement.firstChild );
// Check if a disconnected checkbox will retain its checked // Check if a disconnected checkbox will retain its checked
// value of true after appended to the DOM (IE6/7) // value of true after appended to the DOM (IE6/7)
...@@ -210,7 +211,7 @@ jQuery.support = (function() { ...@@ -210,7 +211,7 @@ jQuery.support = (function() {
// Remove the body element we added // Remove the body element we added
body.innerHTML = ""; body.innerHTML = "";
document.documentElement.removeChild( body ); documentElement.removeChild( body );
// Technique from Juriy Zaytsev // Technique from Juriy Zaytsev
// http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<h3>jQuery Test boxModel detection in IE 6 & 7 compatMode="CSS1Compat"</h3>
<div>document.compatMode = <span id="compat-mode">?</span></div>
<div>jQuery.support.boxModel = <span id="box-model">?</span></div>
<script src="../src/core.js"></script>
<script src="../src/deferred.js"></script>
<script src="../src/support.js"></script>
<script src="../src/data.js"></script>
<script src="../src/queue.js"></script>
<script src="../src/attributes.js"></script>
<script src="../src/event.js"></script>
<script src="../src/sizzle/sizzle.js"></script>
<script src="../src/sizzle-jquery.js"></script>
<script src="../src/traversing.js"></script>
<script src="../src/manipulation.js"></script>
<script src="../src/css.js"></script>
<script src="../src/ajax.js"></script>
<script src="../src/ajax/jsonp.js"></script>
<script src="../src/ajax/script.js"></script>
<script src="../src/ajax/xhr.js"></script>
<script src="../src/effects.js"></script>
<script src="../src/offset.js"></script>
<script src="../src/dimensions.js"></script>
<script>
jQuery(function() {
jQuery( "#compat-mode" ).text( document.compatMode );
jQuery( "#box-model" ).text( jQuery.support.boxModel );
});
</script>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment