Shortened load event code, fixed element hiding (Captcha was hidden even if it wasn't filled properly)

This commit is contained in:
Janek Bevendorff 2012-08-12 03:27:11 +02:00 committed by Janek Bevendorff
parent b700c7a503
commit a1caf4519a

View file

@ -3,7 +3,7 @@
var that = this; var that = this;
var inputCaptcha = document.getElementById("bee_captcha"); var inputCaptcha = document.getElementById("bee_captcha");
var divCaptcha = document.getElementById('serendipity_comment_beecaptcha'); var divCaptcha = document.getElementById('serendipity_comment_beecaptcha');
var method = (loadData.method == 'json') ? loadData.method : 'default'; var method = loadData.method == 'json' ? loadData.method : 'default';
var url = typeof loadData.url != 'undefined' ? loadData.url : null; var url = typeof loadData.url != 'undefined' ? loadData.url : null;
var answer = typeof loadData.answer != 'undefined' ? loadData.answer : null; var answer = typeof loadData.answer != 'undefined' ? loadData.answer : null;
@ -11,9 +11,7 @@
var handlerCalled = false; var handlerCalled = false;
var eventHandler = function() { var eventHandler = function() {
// Since we use multiple handlers, only run this function once // Since we use multiple handlers, only run this function once
if (handlerCalled) { if (handlerCalled) return;
return;
}
handlerCalled = true; handlerCalled = true;
that.fillCaptcha(); that.fillCaptcha();
@ -33,18 +31,10 @@
window.attachEvent('load', eventHandler); window.attachEvent('load', eventHandler);
} else { } else {
// Very, very old browsers // Very, very old browsers
if (typeof window.onload == 'function') { var oldOnload = typeof window.onload == 'function' ? window.onload : null;
window.onload = function() { window.onload = function() {
if (null !== oldOnload) oldOnload();
eventHandler(); eventHandler();
};
} else {
var oldonload = window.onload;
window.onload = function() {
if (oldonload) {
oldonload();
}
eventHandler();
}
} }
} }
} }
@ -52,6 +42,7 @@
this.fillCaptcha = function() { this.fillCaptcha = function() {
if ('default' == method && null !== answer) { if ('default' == method && null !== answer) {
inputCaptcha.value = answer; inputCaptcha.value = answer;
this.hideBeeElement();
return; return;
} else if ('json' == method && null !== url) { } else if ('json' == method && null !== url) {
fetchJsonData(); fetchJsonData();
@ -89,6 +80,7 @@
if (typeof answer != 'string' || 'ERROR' != answer.toUpperCase()) { if (typeof answer != 'string' || 'ERROR' != answer.toUpperCase()) {
inputCaptcha.value = answer; inputCaptcha.value = answer;
this.hideBeeElement();
} }
} }
} }
@ -96,5 +88,4 @@
var spamBeeObj = new SpamBeeCaptcha(spamBeeData); var spamBeeObj = new SpamBeeCaptcha(spamBeeData);
spamBeeObj.attachToLoadEvent(); spamBeeObj.attachToLoadEvent();
spamBeeObj.hideBeeElement();
})(); })();