如何在不使用任何库的情况下使用 ajax 加载并执行 javascript 文件?
我想使用 AJAX 加载 Javascript 文件并执行它。我知道像 jQuery 的 .getScript()
这样的解决方案,但我不想使用任何库!我还知道将 元素写入 DOM,但正如我所说,我正在尝试使用 AJAX 来实现这一点。
这是我的尝试的简化版本:
var http;
if(window.XMLHttpRequest){
http=new XMLHttpRequest();
}
http.open('get','libs/teh-lib.js',false);
http.onreadystatechange=function(){
if(http.readyState==4 && http.status==200){
alert(http.responseText);
}
}
Firebug 显示请求成功,访问了正确的文件,并显示了 HTTP 状态 200。但回应似乎是空洞的。 http.responseType
和 http.response
似乎也是空的。我还尝试了eval(http.responseText)
。
I want to load a Javascript file and execute it, using AJAX. I'm aware of solutions like jQuery's .getScript()
, but I do not want to use any library! I'm also aware of writing <script>
elements to the DOM, but as I said, I'm trying to achieve this with AJAX.
Here's a slimmed down version of my tries:
var http;
if(window.XMLHttpRequest){
http=new XMLHttpRequest();
}
http.open('get','libs/teh-lib.js',false);
http.onreadystatechange=function(){
if(http.readyState==4 && http.status==200){
alert(http.responseText);
}
}
Firebug shows the requests succeed, the right file is accessed, and a HTTP status 200 is shown. But the response seems to be empty. http.responseType
and http.response
seem to be empty, too. I also tried eval(http.responseText)
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Ajax 根本不是解决此问题的方法 - 它能为您做的就是获取数据,然后您必须通过
eval()
运行数据才能执行它们。在 DOM 中创建新的脚本元素确实是这里的自然方法。
Ajax is simply not the method for this - all it can do for you is fetch data, which you would then have to run through
eval()
to get them executed.Creating a new script element in the DOM is really the natural way to go here.
如前所述,不要这样做。使用
<脚本>
As mentioned don't do this. Use
<script>