[英]Javascript Invalid Argument?
我是JavaScript新手,請耐心等待。 我正在使用自定義WYSIWYG編輯器(不,我不想使用已經制作好的編輯器,所以請不要提出建議)。
我無法使其在Internet Explorer中正常工作。 它使我在諸如以下這樣的行上出現了無效參數錯誤:
document.getElementById('editor').contentWindow.document.execCommand("styleWithCSS", false, "false");
這是完整的腳本:
function textstyle(a) {
document.getElementById(a).style.visibility = 'visible';
document.getElementById('editor').contentWindow.focus();
}
function option(a,b) {
document.getElementById('editor').contentWindow.document.execCommand(a, false, b);
document.getElementById('editor').contentWindow.focus();
}
function button(a) {
document.getElementById('editor').contentWindow.document.execCommand(a, false, null);
document.getElementById('editor').contentWindow.focus();
}
var colorSelection;
function selectColor(selection) {
colorSelection = selection;
document.getElementById('colorSelector').style.left = 0 + document.getElementById(selection).offsetLeft + "px";
document.getElementById('colorSelector').style.top = 0 + document.getElementById(selection).offsetTop + document.getElementById(selection).offsetHeight + "px";
document.getElementById('colorSelector').style.visibility = 'visible';
return;
}
function changeColor(colorCode) {
document.getElementById('editor').contentWindow.document.execCommand(colorSelection, false, colorCode);
document.getElementById('colorSelector').style.visibility = 'hidden';
document.getElementById('editor').contentWindow.focus();
return;
}
function dismissmenu()
{
document.getElementById("colorSelector").style.visibility = 'hidden';
document.getElementById("fontlist").style.visibility = 'hidden';
document.getElementById("formatlist").style.visibility = 'hidden';
document.getElementById("sizelist").style.visibility = 'hidden';
}
function Start() {
document.getElementById('editor').contentWindow.document.designMode = "on";
document.getElementById('editor').contentWindow.document.execCommand("styleWithCSS", false, "false");
try {
document.getElementById('editor').contentWindow.document.execCommand("undo", false, null);
editormode = "true";
} catch (e) {
editormode = "false";
}
if (document.addEventListener) {
document.addEventListener("mouseup", dismissmenu, true);
document.getElementById("editor").contentWindow.document.addEventListener("mouseup", dismissmenu, true);
document.addEventListener("keypress", dismissmenu, true);
document.getElementById("editor").contentWindow.document.addEventListener("keypress", dismissmenu, true);
} else if (document.attachEvent) {
document.attachEvent("mouseup", dismissmenu, true);
document.getElementById("editor").contentWindow.document.attachEvent("mouseup", dismissmenu, true);
document.attachEvent("keypress", dismissmenu, true);
document.getElementById("editor").contentWindow.document.attachEvent("keypress", dismissmenu, true);
}
}
function switchEditorMode() {
if (editormode == "true") {
var replaceTagsByMode = function(html, editormode) {
var tags = {};
for (var i=0, a=['b', 'i', 'u', 'strike', 'sub', 'sup']; i<a.length; i++) {
tags[['<', a[i], '>'].join('')] = ['[', a[i], ']'].join('');
tags[['</', a[i], '>'].join('')] = ['[/', a[i], ']'].join('');
}
for (var html_tag in tags) {
if (tags.hasOwnProperty(html_tag)) {
html = html.replace.apply(
html, editormode ? [html_tag, tags[html_tag], 'g'] : [tags[html_tag], html_tag, 'g']);
}
}
return html;
};
var editor_body = document.getElementById('editor').contentWindow.document.body;
editor_body.innerHTML = replaceTagsByMode(editor_body.innerHTML, editormode);
editormode = "false";
} else {
var replaceTagsByMode = function(html, editormode) {
var tags = {};
for (var i=0, a=['b', 'i', 'u', 'strike', 'sub', 'sup']; i<a.length; i++) {
tags[['[', a[i], ']'].join('')] = ['<', a[i], '>'].join('');
tags[['[/', a[i], ']'].join('')] = ['</', a[i], '>'].join('');
}
for (var html_tag in tags) {
if (tags.hasOwnProperty(html_tag)) {
html = html.replace.apply(
html, editormode ? [html_tag, tags[html_tag], 'g'] : [tags[html_tag], html_tag, 'g']);
}
}
return html;
};
var editor_body = document.getElementById('editor').contentWindow.document.body;
editor_body.innerHTML = replaceTagsByMode(editor_body.innerHTML, editormode);
editormode = "true";
}
}
從MSDN上的文檔,看來StyleWithCSS
不是命令識別符存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.