git.asbjorn.biz
/
jquery.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
62d84e4
)
Fixed bug #1594, #1565, #1598 - all of which were concerning the improper execution...
author
John Resig
<jeresig@gmail.com>
Sat, 15 Sep 2007 02:16:29 +0000
(
02:16
+0000)
committer
John Resig
<jeresig@gmail.com>
Sat, 15 Sep 2007 02:16:29 +0000
(
02:16
+0000)
src/core.js
patch
|
blob
|
history
test/unit/core.js
patch
|
blob
|
history
diff --git
a/src/core.js
b/src/core.js
index
eb13540
..
d9749ba
100644
(file)
--- a/
src/core.js
+++ b/
src/core.js
@@
-394,18
+394,32
@@
jQuery.fn = jQuery.prototype = {
obj = this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody"));
jQuery.each( a, function(){
obj = this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody"));
jQuery.each( a, function(){
- if ( jQuery.nodeName(this, "script") ) {
- if ( this.src )
- jQuery.ajax({ url: this.src, async: false, dataType: "script" });
- else
- jQuery.globalEval( this.text || this.textContent || this.innerHTML || "" );
- } else
- fn.apply( obj, [ clone ? this.cloneNode(true) : this ] );
+ var elem = clone ? this.cloneNode(true) : this;
+ if ( !evalScript(0, elem) )
+ fn.call( obj, elem );
});
});
}
};
});
});
}
};
+function evalScript(i, elem){
+ var script = jQuery.nodeName(elem, "script");
+
+ if ( script ) {
+ if ( elem.src )
+ jQuery.ajax({ url: elem.src, async: false, dataType: "script" });
+ else
+ jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
+
+ if ( elem.parentNode )
+ elem.parentNode.removeChild(elem);
+
+ } else if ( elem.nodeType == 1 )
+ jQuery("script", elem).each(evalScript);
+
+ return script;
+}
+
jQuery.extend = jQuery.fn.extend = function() {
// copy reference to target object
var target = arguments[0] || {}, a = 1, al = arguments.length, deep = false;
jQuery.extend = jQuery.fn.extend = function() {
// copy reference to target object
var target = arguments[0] || {}, a = 1, al = arguments.length, deep = false;
diff --git
a/test/unit/core.js
b/test/unit/core.js
index
db47856
..
dce86d8
100644
(file)
--- a/
test/unit/core.js
+++ b/
test/unit/core.js
@@
-821,7
+821,7
@@
test("val(String)", function() {
});
test("html(String)", function() {
});
test("html(String)", function() {
- expect(1);
+ expect(3);
var div = $("div");
div.html("<b>test</b>");
var pass = true;
var div = $("div");
div.html("<b>test</b>");
var pass = true;
@@
-830,8
+830,13
@@
test("html(String)", function() {
}
ok( pass, "Set HTML" );
}
ok( pass, "Set HTML" );
- // Ccommented out until we can resolve it
- // $("#main").html('<script type="text/javascript">ok( true, "$().html().evalScripts() Evals Scripts Twice in Firefox, see #975" );</script>').evalScripts();
+ stop();
+
+ $("#main").html('<script type="text/javascript">ok( true, "$().html().evalScripts() Evals Scripts Twice in Firefox, see #975" );</script>');
+
+ $("#main").html('foo <form><script type="text/javascript">ok( true, "$().html().evalScripts() Evals Scripts Twice in Firefox, see #975" );</script></form>');
+
+ setTimeout( start, 100 );
});
test("filter()", function() {
});
test("filter()", function() {