来自Ajax的javascript无法运行 [英] javascript from ajax won't run

查看:53
本文介绍了来自Ajax的javascript无法运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个页面被暂停,但是文档就绪代码无法运行.我正在IE7中运行.我没有收到任何警报,但是页面在这里"显示正常.方法"ajax"是我编写的一种实用程序方法.我所有的ajax调用都可以正常工作,所以我知道这不是问题.我只是无法运行我的JavaScript.为什么我的JavaScript无法运行?

I have a page being ajaxed in, but the document ready code will not run. I'm running in IE7. I get no alert, but "Page is here" shows fine. The method "ajax" is a utility method I wrote. It works fine for all my ajax calls, so I know that's not the issue. I just can't get my javascript to run. Why would my javascript not be running?

AJAX页面

<script src="Utilities/Javascript/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
        alert("RUN PLEASE");
</script>
Page is here

主页

<html>
<head>
<script src="Utilities/Javascript/Utilities.js"></script>
<script src="Utilities/Javascript/jquery-1.7.1.min.js"></script>
</head>
<body>
<script type="text/javascript">
    $(document).ready(function () {
        ajax("scrolltest.aspx", "divy2");
    });
</script>
<div id="divy2">

</div>
</body>
</html>

Utilities.js中的

ajax方法

ajax method from Utilities.js

/*
* Ajax page loads with url and updates element's innerHtml
* @param url : URL to call for ajax page load
* @param element : Element ID to be updated
*/
function ajax(url, element) {
    var ajx;
    if (window.HXMLHttpRequest) {
        ajx = new XMLHttpRequest();
    }
    else {
        ajx = new ActiveXObject("Microsoft.XMLHTTP");
    }
    ajx.open("GET", url, true);
    ajx.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    ajx.onreadystatechange = function () {
        if (ajx.readyState == 4 && ajx.status == 200) {
            document.getElementById(element).innerHTML = ajx.responseText;
        }
        else if (ajx.readyState == 4 && ajx.status == 400) {
            alert("Page Error. Please refresh and try again.");
        }
        else if (ajx.readyState == 4 && ajx.status == 500) {
            alert("Server Error. Please refresh and try again.");
        }
        else if (ajx.readyState == 4) {
            alert(ajx.status + ":" + ajx.statusText);
        }
    }
    ajx.send();
}

推荐答案

除非您调用eval,否则将不会处理来自"AJAX"请求的Javascript-这实际上不是最好的主意

Javascript from an "AJAX" request will not be processed unless you call eval on it - which is not really the best idea

编辑此答案有点太简短-有多种方法可以执行本机强制执行-请参阅此更详细和类似的问题/答案

edit this answer is a little too brief - there are ways to native force execution - refer to this more detailed and similar question / answer

如何强制Javascript在对Ajax请求的HTML响应中执行

这篇关于来自Ajax的javascript无法运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆