⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spell-check-ui.js

📁 Jive Forums 论坛源码 v4.2.3
💻 JS
📖 第 1 页 / 共 2 页
字号:
	var select = document.getElementById("v_suggestions");
	select.onchange = function() {
		document.getElementById("v_replacement").value = this.value;
	};
	if (is_ie) {
		select.attachEvent("ondblclick", replaceClicked);
	} else {
		select.addEventListener("dblclick", replaceClicked, true);
	}

	document.getElementById("b_replace").onclick = replaceClicked;
	// document.getElementById("b_learn").onclick = learnClicked;
	document.getElementById("b_replall").onclick = replaceAllClicked;
	document.getElementById("b_ignore").onclick = ignoreClicked;
	document.getElementById("b_ignall").onclick = ignoreAllClicked;
	//document.getElementById("b_recheck").onclick = recheckClicked;
	document.getElementById("b_revert").onclick = revertClicked;
	// document.getElementById("b_info").onclick = displayInfo;
    document.getElementById("b_remdup").onclick = removeClicked;

    document.getElementById("b_ok").onclick = saveClicked;
	document.getElementById("b_cancel").onclick = cancelClicked;

	//select = document.getElementById("v_dictionaries");
	//select.onchange = function() {
	//	document.getElementById("f_dictionary").value = this.value;
	//};
};

function getAbsolutePos(el) {
	var r = { x: el.offsetLeft, y: el.offsetTop };
	if (el.offsetParent) {
		var tmp = getAbsolutePos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
};

function wordClicked(scroll) {
	var self = this;
	if (scroll) (function() {
		var pos = getAbsolutePos(self);
		var ws = { x: frame.offsetWidth - 4,
			   y: frame.offsetHeight - 4 };
		var wp = { x: frame.contentWindow.document.body.scrollLeft,
			   y: frame.contentWindow.document.body.scrollTop };
		pos.x -= Math.round(ws.x/2);
		if (pos.x < 0) pos.x = 0;
		pos.y -= Math.round(ws.y/2);
		if (pos.y < 0) pos.y = 0;
		frame.contentWindow.scrollTo(pos.x, pos.y);
	})();
	if (currentElement) {
		var a = allWords[currentElement.__msh_origWord];
		currentElement.className = currentElement.className.replace(/\s*HA-spellcheck-current\s*/g, " ");
		for (var i = 0; i < a.length; ++i) {
			var el = a[i];
			if (el != currentElement) {
				el.className = el.className.replace(/\s*HA-spellcheck-same\s*/g, " ");
			}
		}
	}
	currentElement = this;
	this.className += " HA-spellcheck-current";
	var a = allWords[currentElement.__msh_origWord];
	for (var i in a) {
		var el = a[i];
		if (el != currentElement) {
			el.className += " HA-spellcheck-same";
		}
	}
    // BR
	document.getElementById("b_revert").disabled = true;
	document.getElementById("b_replace").disabled = true;
    document.getElementById("b_ignore").disabled = false;
    document.getElementById("b_replall").disabled = true;
    document.getElementById("b_ignall").disabled = (a.length <= 1);

    // end BR

	//document.getElementById("b_replall").disabled = (a.length <= 1);
	//document.getElementById("b_ignall").disabled = (a.length <= 1);
	// end BR
	var txt;
	if (a.length == 1) {
		txt = "one occurrence";
	} else if (a.length == 2) {
		txt = "two occurrences";
	} else {
		txt = a.length + " occurrences";
	}

    // br - duplicate changes
    var duplicate = duplicated_words["key" + this.__msh_id];
    var suggestions;
    var select = document.getElementById("v_suggestions");
    for (var i = select.length; --i >= 0;) {
        select.remove(i);
    }
    if (!/true/.test(duplicate)) {
        suggestions = suggested_words[this.__msh_origWord];
        if (suggestions)
            suggestions = suggestions.split(/,/);
        else
            suggestions = [];
        document.getElementById("statusbar").innerHTML = "Found " + txt +
            ' for word "<b>' + currentElement.__msh_origWord + '</b>"';

        for (var i = 0; i < suggestions.length; ++i) {
            var txt = suggestions[i];
            var option = document.createElement("option");
            option.value = txt;
            option.appendChild(document.createTextNode(txt));
            select.appendChild(option);
        }
    }
    document.getElementById("v_currentWord").innerHTML = this.__msh_origWord;
	if (duplicate) {
        document.getElementById("v_replacement").disabled = true;
        select.disabled = true;
        document.getElementById("b_remdup").disabled = false;
    }
    else if (suggestions.length > 0) {
        // BR
		select.disabled = false;
        document.getElementById("v_replacement").disabled = false;
        document.getElementById("b_remdup").disabled = true;
        document.getElementById("b_replace").disabled = false;
        document.getElementById("b_replall").disabled = (a.length <= 1);
		// end BR
		select.selectedIndex = 0;
		select.onchange();
	} else {
        document.getElementById("b_remdup").disabled = true;
        document.getElementById("v_replacement").disabled = false;
        document.getElementById("v_replacement").value = this.innerHTML;
		// BR
		select.disabled = true;
	}
	select.style.display = "none";
	select.style.display = "block";

	// BR
	if (currentElement.innerHTML != currentElement.__msh_origWord) {
	    document.getElementById("b_revert").disabled = false;
	}
	else {
	    document.getElementById("b_revert").disabled = true;
	}
	// end BR
	return false;
};

function wordMouseOver() {
	this.className += " HA-spellcheck-hover";
};

function wordMouseOut() {
	this.className = this.className.replace(/\s*HA-spellcheck-hover\s*/g, " ");
};

function displayInfo() {
	var info = frame.contentWindow.spellcheck_info;
	if (!info)
		alert("No information available");
	else {
		var txt = "** Document information **";
		for (var i in info) {
			txt += "\n" + i + " : " + info[i];
		}
		alert(txt);
	}
	return false;
};

function finishedSpellChecking() {
	// initialization of global variables
	currentElement = null;
	wrongWords = null;
	allWords = {};
	fixedWords = [];
	suggested_words = frame.contentWindow.suggested_words;
    duplicated_words = frame.contentWindow.duplicated_words;

    document.getElementById("status").innerHTML = "Spell Checker";
	// br
	//HTMLArea Spell Checker (<a href='readme-tech.html' target='_blank' title='Technical information'>info</a>)";
	var doc = frame.contentWindow.document;
    var spans = doc.getElementsByTagName("span");
    var sps = [];
    var id = 0;
    for (var i = 0; i < spans.length; ++i) {
        var el = spans[i];
        if (/HA-spellcheck-error/.test(el.className)) {
            sps.push(el);
            el.__msh_wordClicked = wordClicked;
            el.onclick = function(ev) {
                ev || (ev = window.event);
                ev && HTMLArea._stopEvent(ev);
                return this.__msh_wordClicked(false);
            };
            el.onmouseover = wordMouseOver;
            el.onmouseout = wordMouseOut;
            el.__msh_id = id++;
            var txt = (el.__msh_origWord = el.firstChild.data);
            el.__msh_fixed = false;
            if (typeof allWords[txt] == "undefined") {
                allWords[txt] = [el];
            }
            else {
                allWords[txt].push(el);
            }
        }
        else if (/HA-spellcheck-fixed/.test(el.className)) {
            fixedWords.push(el);
        }
    }
	wrongWords = sps;
	if (sps.length == 0) {
		if (!modified) {
			alert(i18n["NO_ERRORS_CLOSING"]);
			window.close();
		}
        else {
			alert(i18n["NO_ERRORS"]);
		}
		return false;
	}
	(currentElement = sps[0]).__msh_wordClicked(true);
	var as = doc.getElementsByTagName("a");
	for (var i = as.length; --i >= 0;) {
		var a = as[i];
		a.onclick = function() {
			if (confirm(i18n["CONFIRM_LINK_CLICK"] + ":\n" +
				    this.href + "\n" + i18n["I will open it in a new page."])) {
				window.open(this.href);
			}
			return false;
		};
	}
	var dicts = doc.getElementById("HA-spellcheck-dictionaries");
	if (dicts) {
		dicts.parentNode.removeChild(dicts);
		dicts = dicts.innerHTML.split(/,/);
		var select = document.getElementById("v_dictionaries");
		for (var i = select.length; --i >= 0;) {
			select.remove(i);
		}
		for (var i = 0; i < dicts.length; ++i) {
			var txt = dicts[i];
			var option = document.createElement("option");
			if (/^@(.*)$/.test(txt)) {
				txt = RegExp.$1;
				option.selected = true;
			}
			option.value = txt;
			option.appendChild(document.createTextNode(txt));
			select.appendChild(option);
		}
	}

	// enable buttons - BR
	document.getElementById("v_replacement").disabled = false;
	// don't need to unset this because it's done in replacementTextEntered
	//document.getElementById("b_replace").disabled = false;
	// don't need to unset this because it's done above in wordClicked
	//document.getElementById("b_replall").disabled = false;
	document.getElementById("b_ignore").disabled = false;
	// don't need to unset this because it's done above in wordClicked
	//document.getElementById("b_ignall").disabled = false;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -