作者ephesians (ephesians)
看板Ajax
标题Re: [问题] .js可以网页取後,再include吗...
时间Wed Dec 27 22:45:20 2006
※ 引述《gpmm (银色)》之铭言:
: 抱歉,是小弟太浅了 囧rz
: 测了一下 IE 没问题,不过 FF 会在 load 之後有持续读取的情况。
: 小弟试着用自己的想法写了一下:
: <script language="JavaScript" type="text/javascript">
: function load_lib2 () {
: var d = document.createElement('div');
: d.innerHTML = '<script type="text\/javascript" src="test.js" >
: <\/script>';
: document.getElementsByTagName('body')[0].appendChild(d);
: }
: </script>
: <input type="button" value="load lib" onclick="load_lib2()" />
: 但是奇怪,在 FF 下顺利运作, IE 下就不行!? = =
: 如果 innerHTML = "123" 之类的都可以顺利显示,就 js 不行。
: 请问一下这是啥问题。
: 另外 test.js 里就是一个简单的 alert ('test');
可以这样子做:
<script language="JavaScript" type="text/javascript">
function load_lib2 () {
var d = document.createElement('div');
var s = document.createElement('script');
s.language = 'text\/javascript';
s.type = 'text\/javascript';
s.src = 'test.js';
d.appendChild(s);
document.getElementsByTagName('body')[0].appendChild(d);
}
</script>
但这是无效的!
节点加是加了,却没有可执行的效果.
不过,直接对付document.scripts也是一件好事:
<script language="JavaScript" type="text/javascript">
function load_lib3 () {
var s = document.createElement('script');
document.getElementsByTagName('body')[0].appendChild(s);
document.scripts[document.scripts.length-1].src = 'test.js';
//但以下这行失败,因为script内文不可编辑
document.scripts[document.scripts.length-1].text =
'alert(\'loaded\')';
}
</script>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.112.227.116
※ 编辑: ephesians 来自: 59.112.227.116 (12/27 22:48)
※ 编辑: ephesians 来自: 59.112.227.116 (12/27 22:52)