任何人都可以弄清楚为什么会抛出语法错误?所有代码对我来说都是正确的。
<script type="text/javascript">
var rootdomain="http://"+window.location.hostname;
function ajaxinclude(url)
{
var pagerequest = false;
if (window.XMLHttpRequest) // if Mozilla, Safari etc
pagerequest = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
pagerequest = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
pagerequest = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
pagerequest.open('GET', url, false) //get page synchronously
pagerequest.send(null)
writecontent(pagerequest)
}
function writecontent(page_request){
if (window.location.href.indexOf("http")==-1 || pagerequest.status==200)
document.getElementById("page1").innerHTML = pagerequest.responseText;
}
它在第7行抛出错误 - var pagerequest = false;
如果你注释掉它,它只会在下一行引发错误。有什么想法吗?
提前感谢您的帮助!!
答案 0 :(得分:2)
Yopur writecontent是wronge(参数命名)尝试:
function writecontent(page_request){
if (window.location.href.indexOf("http")==-1 || page_request.status==200)
document.getElementById("page1").innerHTML = page_request.responseText;
}
此外,这没有实际价值:
var pagerequest = false;
因为如果不在代码中的其他地方设置它,就永远不会返回它,也许只是:
var pagerequest;
答案 1 :(得分:2)
在writecontent
函数中,您调用参数page_request
,但在函数体中将其称为pagerequest
(不带下划线)。
否则,您的代码应该正常工作 - 请参阅http://jsfiddle.net/2eynH/以获取示例。
答案 2 :(得分:1)
首先要做的事 - 利用http://jslint.com/
它不喜欢您的writecontent
功能。
pagerequest = new XMLHttpRequest()
缺少分号。
另外,我也喜欢通过YUI Compressor“翻录”我的javascript来帮助揭示语法错误。
http://developer.yahoo.com/yui/compressor/
更多缺少分号:
pagerequest = new ActiveXObject("Msxml2.XMLHTTP")
pagerequest = new ActiveXObject("Microsoft.XMLHTTP")
还有一件事。即使javascript允许你做某事,但并不意味着你应该这样做。将pagerequest声明为布尔值,然后将其设置为ActiveXObject有点令人困惑。我可能会把它初始化为null。然后在代码中稍后“测试”为null。
答案 3 :(得分:0)
几乎所有线路上都缺少分号。
清理代码:
function ajaxinclude(url) {
var pagerequest;
if (window.XMLHttpRequest) { // if Mozilla, Safari etc
pagerequest = new XMLHttpRequest();
} else if (window.ActiveXObject){ // if IE
try {
pagerequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
pagerequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (ec) {}
}
}
else {
return false;
}
pagerequest.open('GET', url, false); // get page synchronously
pagerequest.send();
writecontent(pagerequest);
}
function writecontent (page_request) {
if (window.location.href.indexOf("http") == -1 || page_request.status == 200) {
document.getElementById("page1").innerHTML = page_request.responseText;
}
}
答案 4 :(得分:-1)
您的代码无效。当没有它时,半冒号会添加到您的代码中,或者它认为应该拥有它。
所以在
function ajaxinclude(url)
{
var pagerequest = false;
if (window.XMLHttpRequest) // if Mozilla, Safari etc
pagerequest = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
javascript编译器将执行以下操作
function ajaxinclude(url); // note the semi-color meaning the { starts floating in the middle of nowhere
{
var pagerequest = false;
if (window.XMLHttpRequest) // if Mozilla, Safari etc
pagerequest = new XMLHttpRequest();
else if (window.ActiveXObject){ // if IE
try { //and so on
正如大多数人建议在其上运行JSLint以查看错误。
根据评论进行修改
您可以在blog
中查看分号插入详细信息