当前位置: 首页 > 面试题库 >

JavaScript无法在AJAX加载的DIV中运行

胡承悦
2023-03-14
问题内容

我在使javascript代码在AJAX加载的div内运行时遇到问题,我试图包含jquery选项卡,但它不起作用,ajax仅输出文本,无法识别javascript。你能帮忙的话,我会很高兴。

这是我的js代码:

var OpenedPage;

function load(url, target) {
    document.getElementById(target).innerHTML = 'Loading ...';
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (req != undefined) {
        req.onreadystatechange = function () {
            loadDone(url, target);
        };
        req.open("GET", url, true);
        req.send("");
    }
}

function loadDone(url, target) {
    if (req.readyState == 4) { // only if req is "loaded"
        if (req.status == 200) { // only if "OK"
            document.getElementById(target).innerHTML = "loaded" + req.responseText;
        } else {
            document.getElementById(target).innerHTML = "Error:\n" + req.status + "\n" + req.statusText;
        }
    }
}

function unload() {
    if (OpenedPage == "divsignin") {
        unloaddivsignin();
    }
    if (OpenedPage == "divHowto") {
        unloaddivHowto();
    }

}

function ShowHidedivsignin() {
    unload();
    OpenedPage = "divsignin";
    load("../slogin.php", "divsignin");
    $("#divsignin").animate({"height": "toggle"}, {duration: 800});
}

function unloaddivsignin() {
    OpenedPage = "";
    $("#divsignin").animate({"height": "toggle"}, {duration: 800});
}

function ShowHidedivHowto() {
    unload();
    OpenedPage = "divHowto";
    load("../howto.php", "divHowto");
    $("#divHowto").animate({"height": "toggle"}, {duration: 800});
}

function unloaddivHowto() {
    OpenedPage = "";
    $("#divHowto").animate({"height": "toggle"}, {duration: 800});
}

和HTML:

<div id="divsignin" style="display:none;width:auto"> </div>


<a onClick="ShowHidedivHowto(); return false;" href="#">help</a>

问题答案:

我还没有检查所有代码,但是您使用什么来触发将Javacript加载到div中?窗口/文档就绪功能仅在页面最初加载时触发一次。

尝试将以下内容用于加载到div中的内容…

<div id="tabs">
    <ul>
        <li><a href="#fragment-1"><span>One</span></a></li>
        <li><a href="#fragment-2"><span>Two</span></a></li>
        <li><a href="#fragment-3"><span>Three</span></a></li>
    </ul>
    <div id="fragment-1">
        <p>First tab is active by default:</p>
        <pre><code>$('#example').tabs();</code></pre>
    </div>
    <div id="fragment-2">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    </div>
    <div id="fragment-3">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    </div>
</div>
<script type="text/javascript">
    $("#tabs").tabs();
</script>

请注意,脚本标记位于结尾处,因此将在加载选项卡后对其进行解析。

另一种方法是修改AJAX成功时调用的函数并添加

 $("#tabs").tabs();

至最后-再次确保代码仅在内容加载后才运行。



 类似资料:
  • 问题内容: 我有一个index.php文件,可通过此javascript / ajax代码加载其他php文件: 因此,例如,我将通过以下方式在inxex.php中加载文件: 这会将“ contentpage.php”的内容粘贴到div“ updateThisDiv”中,但是现在如果我在“ contentpage.php”上有任何JavaScript,它将无法运行,有什么办法吗? 我已经看过了:ht

  • 问题内容: 我的问题很简单,如何使用jquery ajax comand检索某些div 喜欢带负载 问题答案: 如果div是AJAX响应的一部分:

  • 问题内容: Ajax请求后如何刷新或重新加载div?我有此代码: 我需要重新加载或刷新标题div。 问题答案: 您可以这样加载div.div之前请注意空格

  • 问题内容: 我需要建立一个像fmylife.com中那样的适度系统。基本上,我遇到的问题是使用Ajax(无需刷新页面)将MySQL查询加载到div中。MySQL查询 的HTML 当按“是”或“否”按钮时,应重新加载该数据。提前致谢。 问题答案: @mgraph已关闭,但如果要在按钮上执行此操作,请单击 在 post.php中 : JS : HTML : 备用HTML / JS

  • 问题内容: 如果不使用iframe,则可以加载以下内容: 与外部站点,例如somesitehere.com 页面何时加载?-我知道如何从文件加载内容,但是不确定如何加载整个网站吗? 非常感谢, 问题答案: 无需专门的操作就可以做到。由于标题中提到了jQuery,因此使用了jQuery。

  • 问题内容: 我有一个页面(我们称其为1.php),它使用jQuery-ajax将2.php加载到div- box中。2.php从我的数据库中打印20条记录。当滚动时到达div框的底部时,我希望它加载接下来的20条记录。像Facebook,Twitter等,都是这样做的。 现在,我已经有了这种行为,但是仅当自己加载2.php时!但不在div框中。 我该怎么办? 提前致谢! 问题答案: 文件1.php