A tip when running javascript dynamically
firefox works differently from ie when change src of a existing script , in ie this action cause the javascript engine to reload that script, and execute it ,while in firefox, nothing will happen
you can have your own test by following code
<
script id
=
"
s1
"
type
=
"
text/javascript
"
>
</
script
>
<
script language
=
"
javascript
"
type
=
"
text/javascript
"
>
document
.
getElementById(
"
s1
"
)
.
src
=
"
1.js
"
;
</
script
>
in 1.js we simply alert some message
alert("executed");
So if you want the browser to execute some js dynamically , you need to reload the script element. Add a script element into DOM will cause the execution of the script in both browser ,following code shows how to reload a script element
if
(
this
.element)
this
.element.parentNode.removeChild(
this
.element);
this
.element
=
document.createElement(
"
SCRIPT
"
);
this
.element.type
=
"
text/javascript
"
;
this
.element.id
=
"
MzJsonElement
"
;
this
.element.src
=
url;
document.getElementsByTagName(
"
HEAD
"
)[
0
].appendChild(
this
.element);
this might be helpful when we need our browser to run some json callback script
还没有评论,来说两句吧...