javascript - 尝试调用从 AJAX 调用传回的 JS 代码

标签 javascript ajax

好的,我有一个 javascript 函数可以检索一些 HTML...

function updateQuestions(i){
    var url = 'getQuestions.php?sys=' + i;
    if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
        receiveReq.open("GET", url, true);
        receiveReq.onreadystatechange = handleQuestionsUpdate; 
        receiveReq.send(null);
    }
}

function handleQuestionsUpdate() {
    if (receiveReq.readyState == 4) {
        var a=receiveReq.responseText;
        document.getElementById('questions').innerHTML=a;
        checkSpeakers(); //Error Occurs Here, even though checkSpeakers() is a function in the returned HTML chunk.
    }   
}

这个 HTML 不仅仅是 HTML,更具体地说,它是一个表单和一段 javascript。 javascript 被硬编码到 HTML 中,并且不被 <script src="..">

引用

调用时无法识别检索到的 JS 代码,这正常吗?如果是这样,如果我需要每次更新 div 时都更改 JS,我的替代方案是什么?

这是返回给 JavaScript 函数的文本。

function checkPillowSpeakers()
{
    var pillowSpeakers = document.getElementById('Q9').value + document.getElementById('Q10').value;
    document.getElementById('PS1').style.display = ((pillowSpeakers > 0)? '' : 'none');
    document.getElementById('PS2').style.display = ((pillowSpeakers > 0)? '' : 'none');
}~ARRAYSEPERATOR~<html>....</html>

JS 代码通过 ~ARRAYSEPERATOR~ 标记与 HTML 代码分开。问题是我此时不想执行代码,我只想将其排队,以便我可以根据命令调用它。

最佳答案

您应该首先尝试从 HTML 内容中获取 JavaScript 部分。 然后您可以使用 JavaScript 中的 eval() 函数轻松执行它;

关于javascript - 尝试调用从 AJAX 调用传回的 JS 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3025975/

相关文章:

javascript - window.open 避免函数处理程序中的弹出窗口阻止程序

javascript - 在一个 div 中垂直分布两个图像

php - 根据 Jquery Ajax 返回的值填充第二个下拉列表

jquery - ajax 调用中 session 过期时回发

javascript - AJAX - 如何在弹出菜单中运行脚本

javascript - 从加载同步 jQuery ajax 调用的 JS 脚本中提取对象

javascript - 如何从常规javascript函数访问jquery中的变量

javascript - 如何将乙烯基源流输出到我的目标目录?

php - tinymce 无法在 php 中运行?

jquery - 保护ajax和jquery注入(inject)