(Sync or Async ist not the issue)
This is a extract of the working code:
[code]
//----------------
function importJS(url){
var script = syncGetFile(url);
document.body.insertAdjacentHTML("beforeEnd",
"<span> </span><SCRIPT DEFER>" + script + "</SCRIPT>");
}
//----------------
function syncGetFile(url){
var xmlhttp = _XMLHttpRequest_init();
xmlhttp.open("GET", url, false);
xmlhttp.send(null);
return xmlhttp.responseText;
}
function _XMLHttpRequest_init() {
....
}
if(typeof HTMLElement!="undefined" && !
HTMLElement.prototype.insertAdjacentElement){
HTMLElement.prototype.insertAdjacentHTML = function (sWhere, sHTML) {
}
}
[/code]
for testing try to insert "var str = 'function a(){alert(1)}'; with
insertAdjacent or another way
and call the function afterwards.
i'm stuck now.
opera and safari experts needed...
Andres
different agents, use comment syntax like
<!-- [if >IE5 ..] -->
-------------------
If you don't understand "remote scripting",
aka xmlHttp, study hard and find out.
--------------------
hundreds of thousands of people died in my lifetime
(outside US borders) for US one way street thinking.
See now, what your kind did to humans.
Chimpanses have 6 genes different from those of humans
of some 35.000 genes total. And your post just shows that.
"warteschlange" <and...@holzapfel.ch> wrote in message
news:1121589276....@g49g2000cwa.googlegroups.com...
warteschlange wrote:
> i want to postload javscript from another javascript.
> This works fine in
> firefox and IE6
> for macIE i can use an Iframe to load the code and inject it with
> insertAdjacentHTML
> The problems arise with safari and opera.
> both load the new code with XMLHttpRequest, but the code is no
> 'executable'
With recent Opera (8.x, perhaps 7.5x) it should be possible to simply
create a new script element object and insert it into the page without
using any XMLHttpRequest e.g.
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'test2005071701.js';
document.getElementsByTagName('head')[0].appendChild(script);
That also works with IE/Win and with Mozilla but you should note that
the script file might be loaded asynchronously so don't expect to be
able to call functions in the JavaScript file directly after the
appendChild call.
--
Martin Honnen
http://JavaScript.FAQTs.com/
So there remains Safari as a problem.
I'm sure, that sooner or later Safari will allow your mentioned method,
but until then some hacking is needed.
(I guess, it is the same with the opacity - you have to convice the
progammers, that it is not relevant how useful that 'gadget' is, what
really matters is compability)
One aproach to make it work with safari, was loading the new jssrc and
using eval (arghhh...) - Works, but functions must be defined this
way:
window.funcName = function(...){...}, to be callable from the origin
code.
Again thanks
and hoping for a Safari expert
It is still a better alternative than an HTTPRequest that has limited
support though, isn't it? createElement is supported in more browsers
than HTTPRequest is. Possibly using a test for HTTPRequest support and a
final section that attempts to use createElement and possibly two other
ways to dynamically load a .js file.
--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly