Added a fix and test for bug #978 (Appending elements into an IFrame, in IE).
This commit is contained in:
parent
7ad613c5e9
commit
0f7c89cd97
|
@ -79,6 +79,7 @@
|
||||||
</object>
|
</object>
|
||||||
</form>
|
</form>
|
||||||
<b id="floatTest">Float test.</b>
|
<b id="floatTest">Float test.</b>
|
||||||
|
<iframe id="iframe"></iframe>
|
||||||
</div>
|
</div>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
|
|
12
src/jquery/coreTest.js
vendored
12
src/jquery/coreTest.js
vendored
|
@ -316,7 +316,7 @@ test("wrap(String|Element)", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test("append(String|Element|Array<Element>|jQuery)", function() {
|
test("append(String|Element|Array<Element>|jQuery)", function() {
|
||||||
expect(11);
|
expect(12);
|
||||||
var defaultText = 'Try them out:'
|
var defaultText = 'Try them out:'
|
||||||
var result = $('#first').append('<b>buga</b>');
|
var result = $('#first').append('<b>buga</b>');
|
||||||
ok( result.text() == defaultText + 'buga', 'Check if text appending works' );
|
ok( result.text() == defaultText + 'buga', 'Check if text appending works' );
|
||||||
|
@ -353,6 +353,16 @@ test("append(String|Element|Array<Element>|jQuery)", function() {
|
||||||
reset();
|
reset();
|
||||||
$("#sap").append(document.getElementById('form'));
|
$("#sap").append(document.getElementById('form'));
|
||||||
ok( $("#sap>form").size() == 1, "Check for appending a form" ); // Bug #910
|
ok( $("#sap>form").size() == 1, "Check for appending a form" ); // Bug #910
|
||||||
|
|
||||||
|
reset();
|
||||||
|
var pass = true;
|
||||||
|
try {
|
||||||
|
$( $("iframe")[0].contentWindow.document.body ).append("<div>test</div>");
|
||||||
|
} catch(e) {
|
||||||
|
pass = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ok( pass, "Test for appending a DOM node to the contents of an IFrame" );
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
21
src/jquery/jquery.js
vendored
21
src/jquery/jquery.js
vendored
|
@ -614,10 +614,13 @@ jQuery.fn = jQuery.prototype = {
|
||||||
*/
|
*/
|
||||||
wrap: function() {
|
wrap: function() {
|
||||||
// The elements to wrap the target around
|
// The elements to wrap the target around
|
||||||
var a = jQuery.clean(arguments);
|
var a, args = arguments;
|
||||||
|
|
||||||
// Wrap each of the matched elements individually
|
// Wrap each of the matched elements individually
|
||||||
return this.each(function(){
|
return this.each(function(){
|
||||||
|
if ( !a )
|
||||||
|
a = jQuery.clean(args, this.ownerDocument);
|
||||||
|
|
||||||
// Clone the structure that we're using to wrap
|
// Clone the structure that we're using to wrap
|
||||||
var b = a[0].cloneNode(true);
|
var b = a[0].cloneNode(true);
|
||||||
|
|
||||||
|
@ -1121,12 +1124,15 @@ jQuery.fn = jQuery.prototype = {
|
||||||
* @cat Core
|
* @cat Core
|
||||||
*/
|
*/
|
||||||
domManip: function(args, table, dir, fn){
|
domManip: function(args, table, dir, fn){
|
||||||
var clone = this.length > 1;
|
var clone = this.length > 1, a;
|
||||||
var a = jQuery.clean(args);
|
|
||||||
if ( dir < 0 )
|
|
||||||
a.reverse();
|
|
||||||
|
|
||||||
return this.each(function(){
|
return this.each(function(){
|
||||||
|
if ( !a ) {
|
||||||
|
a = jQuery.clean(args, this.ownerDocument);
|
||||||
|
if ( dir < 0 )
|
||||||
|
a.reverse();
|
||||||
|
}
|
||||||
|
|
||||||
var obj = this;
|
var obj = this;
|
||||||
|
|
||||||
if ( table && jQuery.nodeName(this, "table") && jQuery.nodeName(a[0], "tr") )
|
if ( table && jQuery.nodeName(this, "table") && jQuery.nodeName(a[0], "tr") )
|
||||||
|
@ -1440,8 +1446,9 @@ jQuery.extend({
|
||||||
return ret;
|
return ret;
|
||||||
},
|
},
|
||||||
|
|
||||||
clean: function(a) {
|
clean: function(a, doc) {
|
||||||
var r = [];
|
var r = [];
|
||||||
|
doc = doc || document;
|
||||||
|
|
||||||
jQuery.each( a, function(i,arg){
|
jQuery.each( a, function(i,arg){
|
||||||
if ( !arg ) return;
|
if ( !arg ) return;
|
||||||
|
@ -1452,7 +1459,7 @@ jQuery.extend({
|
||||||
// Convert html string into DOM nodes
|
// Convert html string into DOM nodes
|
||||||
if ( typeof arg == "string" ) {
|
if ( typeof arg == "string" ) {
|
||||||
// Trim whitespace, otherwise indexOf won't work as expected
|
// Trim whitespace, otherwise indexOf won't work as expected
|
||||||
var s = jQuery.trim(arg), div = document.createElement("div"), tb = [];
|
var s = jQuery.trim(arg), div = doc.createElement("div"), tb = [];
|
||||||
|
|
||||||
var wrap =
|
var wrap =
|
||||||
// option or optgroup
|
// option or optgroup
|
||||||
|
|
|
@ -144,8 +144,8 @@ test("expressions - basic xpath", function() {
|
||||||
t( "Attribute Exists", "//a[@title]", ["google"] );
|
t( "Attribute Exists", "//a[@title]", ["google"] );
|
||||||
t( "Attribute Equals", "//a[@rel='bookmark']", ["simon1"] );
|
t( "Attribute Equals", "//a[@rel='bookmark']", ["simon1"] );
|
||||||
t( "Parent Axis", "//p/..", ["main","foo"] );
|
t( "Parent Axis", "//p/..", ["main","foo"] );
|
||||||
t( "Sibling Axis", "//p/../", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","sndp","en","sap"] );
|
t( "Sibling Axis", "//p/../", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","sndp","en","sap"] );
|
||||||
t( "Sibling Axis", "//p/../*", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","sndp","en","sap"] );
|
t( "Sibling Axis", "//p/../*", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","sndp","en","sap"] );
|
||||||
t( "Has Children", "//p[a]", ["firstp","ap","en","sap"] );
|
t( "Has Children", "//p[a]", ["firstp","ap","en","sap"] );
|
||||||
|
|
||||||
$("#foo").each(function() {
|
$("#foo").each(function() {
|
||||||
|
|
Loading…
Reference in a new issue