好的,我有一个 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/