2013-05-21 69 views
0

「無法加載http:// url status:0」錯誤可能有人可以幫我找到這個問題嗎?onbeforeunload-method

我有一個xpage,包含客戶端js代碼,當你決定離開頁面時應該執行它。在客戶端js中,您引用一個按鈕並自動單擊它。該按鈕包含一些服務器端js代碼,並將文檔中的標誌從(「由......打開」改爲「」)。

的事情是,不知何故客戶端JS沒有在除當前IE(10.0.5)的所有不同的瀏覽器工作,並引發錯誤:

unable to load http://urlofthedocument/... status:0 

關於這個有趣的是,當我在click()方法之後插入一個alert()方法 - 在每個瀏覽器中一切正常。但是,因爲我不想包括這個警報聲明,所以我發現必須有一些不同的東西來避免這種情況。 (會有短暫的停頓,而不是警報的方法也沒有工作。)

我的CS JS-代碼:

window.onbeforeunload = WarnEditMode; 

function WarnEditMode(){ 
    if(needUnloadConfirm == true){ 
     var el = window.document.getElementById("#{id:Hidden4SSJS}"); 
     el.click(); 
     //document.open(); 
     //document.write(el); 
     //document.close(); 
     //alert("You're about to leave the page"); 
     //pause(5000); 

    } 
} 

function pause(millis){ 
    var date = new Date(); 
    var curDate = null; 
    do { curDate = new Date(); } 
    while(curDate-date < millis) 
} 

這指的按鈕,它執行下面的SS JS代碼,它被點擊後, :

try{ 
    print("Hidden4SSJS-Button-Test @ Person"); 
    var db:NotesDatabase = database; 
    var agt:NotesAgent; 
    var doc:NotesDocument = XPPersonDoc.getDocument() 

    agt = db.getAgent("(XPUnlockDocument)"); 
    agt.run(doc.getNoteID()); 
}catch(e){ 
    _dump(e); 
} 

願你們能幫助我嗎?

+0

我已經掌握了它自己。 ();)();();();();();();}();}} }; – WolfgangRabenstein

回答

1

我會用這個帶有隱藏計算領域的XSP對象(而不是你的特殊按鈕)做...

事情是這樣的:

function WarnEditMode(){ 
    if(needUnloadConfirm == true){ 
     XSP.partialRefreshGet("#{id:unlockDocCF1}", { 
     params: { 
      '$$xspsubmitvalue': 'needToUnlock' 
     }, 
     onComplete: function() { 
      alert('You are about to leave this page and the document has been unlocked.'); 
     }, 
     onError : function (e) { 
      alert('You are about to leave this page and the document has NOT been unlocked.\n' + e); 
     } 
    ); 
    } 
    pause(5000); 
} 

然後計算領域的javascript會是這樣像這樣:

try{ 
    var sval = @Explode(context.getSubmittedValue(), ','); 
    if (sval == null) return result + " no action."; 
    if (!"needToUnlock".equals(sval[0])) return result + " no action."; 

    print("Hidden4SSJS-Button-Test @ Person"); 
    var db:NotesDatabase = database; 
    var agt:NotesAgent; 
    var doc:NotesDocument = XPPersonDoc.getDocument() 

    agt = db.getAgent("(XPUnlockDocument)"); 
    agt.run(doc.getNoteID()); 
    return 'document unlocked.'; 
}catch(e){ 
    _dump(e); 
} 
+0

非常感謝您的幫助。不幸的是,這個解決方案只適用於IE和Firefox,而不適用於Chrome,Safari或Opera。點擊按鈕的解決方案也適用於Chrome。我還沒有找到一個更好的解決方案,這也可以使Opera或Safari開始工作。 – WolfgangRabenstein