2009-10-07 81 views
0

调用ajax webservice我有一个Ajax化的.NET web服务,我从我的ASP.NET内容页上的javascript(mootools)调用主页首先检查用户是否其次是在没有记者关联的情况下删除用户。从OnComplete调用ajax webservice调用不发射OnComplete第二次

这两个调用Web服务工作,但第二个onComplete不在IE8。 使用FF 3.5.3我在firebug中得到“deleteUserInt is not defined”错误。

我已经读过这可以是一个sytax错误,但似乎无法看到它。

请帮忙。

var userId; 
var siteName; 
var siteFolder; 
function userInternalHasUserExternals() { 
    siteName = document.location.href.split("/")[document.location.href.split("/").length - 1]; 
    siteFolder = document.location.href.replace(siteName, ""); 
    var jsonRequest = new Request.JSON({ url: siteFolder + "Service1.asmx/UserInternalHasUserExternals", 
     onComplete: onComplete, 
     onFailure: onError, 
     urlEncoded: false, 
     headers: { "Content-type": "application/json" } 
    }); 
    userId = document.getElementById("<%= HiddenId.ClientID %>").innerText; 
    jsonRequest.send(JSON.encode({ 'userInternalId': userId })); 
} 

function onComplete(results) { 
    var fullname = document.getElementById("<%= fullnameTextBox.ClientID %>").value; 

    if (results != null && results["d"] != null && results["d"]) { 
     alert("Du kan ikke slette " + fullname + ". Kontoen har journalister tilknyttet."); 
     return false; 
    } 

    var deleteUser = confirm("Er du sikker på du vil slette " + fullname + "?"); 
    if (deleteUser) { 
     deleteUserInt(); 
     window.location = window.siteFolder + "CreateUserInternal.aspx?IsDeleted=true"; 
    } 
    else 
     window.location = window.siteFolder + "EditUserInternal.aspx?UserInternalId=" + window.userId; 
} 

function deleteUserInt() { 
    var request; 
    request = new Request.JSON({ url: window.siteFolder + "Service1.asmx/DeleteUserInternal", 
     onComplete: onDeleted, 
     onFailure: onError, 
     urlEncoded: false, 
     headers: { "Content-type": "application/json" } 
    }); 
    request.send(JSON.encode({ 'userInternalId': window.userId })); 
} 

function onDeleted(args) { 
    if (args != null && args["d"] != null && args["d"]) 
     window.location = window.siteFolder + "CreateUserInternal.aspx?IsDeleted=true"; 
    else 
     alert("Der skete en fejl. Kontakt venligst site administrator."); 
} 

function onError() { 
    alert("Something bad happened!"); 
} 

回答

0

这是“解决”后,我搬到我的JavaScript出在一个文件中,发现使用的innerText而不是innerHTML的错误。

被调用的IE8缺失函数在移动后也会“固定”。

当然,我必须将我在aspx页面中使用的ClientIds作为参数传递给新方法,但对我来说工作得很好。

由于某种原因,当我有2个确认,然后警报时,Firefox弹出枪。