调用JS函数的问题

时间:2012-03-27 04:17:13

标签: javascript

我有一个填充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?

3 个答案:

答案 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\');'