我有一个填充div的函数,但包括js onclick。它是如何产生一些我以前从未见过的奇怪错误。
这是功能:
//Browser Support Code for AJAX Requests
function ajaxFunction(url,data){
if (window.XMLHttpRequest) {
AJAX=new XMLHttpRequest();
} else {
AJAX=new ActiveXObject("Microsoft.XMLHTTP");
}
if (AJAX) {
querystring = "?dta="+data;
AJAX.open("GET", url + querystring, false);
AJAX.send(null);
return AJAX.responseText;
} else {
return false;
}
}
function subpopulate(id,array,type){ alert('test2'); // alert to check if called
document.getElementById(id).innerHTML += "<div class='subm'>test</div>";
}
function menu(type,scri,get){ alert('test'); //alert to check if called
var result = ajaxFunction(scri,get);
subpopulate('offset',result,type);
}
function loadmain(id){
document.getElementById(id).innerHTML = "<table style='width:100%;'><tr><td><a href='#' onclick='javascript:menu('build','build.php','false');'>Build</a></td></tr></table>";
}
当我点击链接时,它没有调用“菜单”功能,它出错:
未捕获的SyntaxError:意外的令牌}
在控制台错误中我所看到的是它的信息如下:
window.script1332821403739=1;
为什么会发生这种情况的任何想法:S?
答案 0 :(得分:1)
您需要在HTML表格标记中嵌入的javascript代码中转义单引号。
答案 1 :(得分:1)
在loadmain方法中替换onclick事件代码,如下所示:
onclick='javascript:menu(\"build\",\"build.php\",\"false\");'
答案 2 :(得分:1)
更改
onclick='javascript:menu('build','build.php','false');'
到
onclick='javascript:menu(\'build\',\'build.php\',\'false\');'