浏览器总是提示变量未定义 这个是一个showModalDialog打开的页面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 btnOK在函数之后定义,所以错误。请用document.getElementById('btnOK');取得对象,就不会错了。 btnOK = document.getElementById('btnOK');btnOK.onclick = new Function("btnOKClick()"); 这个问题解决了,十分感谢。还想问一个问题:如何将showModalDialog的变量回传给母窗口? 我这个代码出处是:<SCRIPT defer>function _CloseOnEsc() { if (event.keyCode == 27) { window.close(); return; }}function _getTextRange(elm) { var r = elm.parentTextEdit.createTextRange(); r.moveToElementText(elm); return r;}function HandleError(message, url, line) { var str = "An error has occurred in this dialog." + "\n\n" + "Error: " + line + "\n" + message; alert(str); window.close(); return true;}function Init() { var elmSelectedImage; var htmlSelectionControl = "Control"; var globalDoc = window.dialogArguments; //var grngMaster = globalDoc.selection.createRange(); // event handlers document.body.onkeypress = _CloseOnEsc; btnOK.onclick = new Function("btnOKClick()"); txtFileName.fImageLoaded = false; txtFileName.intImageWidth = 0; txtFileName.intImageHeight = 0; if (globalDoc.selection.type == htmlSelectionControl) { if (grngMaster.length == 1) { elmSelectedImage = grngMaster.item(0); if (elmSelectedImage.tagName == "IMG") { txtFileName.fImageLoaded = true; if (elmSelectedImage.src) { txtFileName.value = elmSelectedImage.src.replace(/^[^*]*(\*\*\*)/, "$1"); // fix placeholder src values that editor converted to abs paths txtFileName.intImageHeight = elmSelectedImage.height; txtFileName.intImageWidth = elmSelectedImage.width; txtVertical.value = elmSelectedImage.vspace; txtHorizontal.value = elmSelectedImage.hspace; txtBorder.value = elmSelectedImage.border; txtAltText.value = elmSelectedImage.alt; selAlignment.value = elmSelectedImage.align; } } } } txtFileName.value = txtFileName.value || "http://"; txtFileName.focus();}function _isValidNumber(txtBox) { var val = parseInt(txtBox); if (isNaN(val) || val < 0 || val > 999) { return false; } return true;}function btnOKClick() { var elmImage; var intAlignment; var htmlSelectionControl = "Control"; var globalDoc = window.dialogArguments; var grngMaster = globalDoc.selection.createRange(); // error checking if (!txtFileName.value || txtFileName.value == "http://") { alert("图像连接不能为空"); txtFileName.focus(); return; } if (txtHorizontal.value && !_isValidNumber(txtHorizontal.value)) { alert("水平间距必须介于 0 -- 999."); txtHorizontal.focus(); return; } if (txtBorder.value && !_isValidNumber(txtBorder.value)) { alert("边宽必须介于 0 -- 999."); txtBorder.focus(); return; } if (txtVertical.value && !_isValidNumber(txtVertical.value)) { alert("垂直间距必须介于 0 -- 999."); txtVertical.focus(); return; } // delete selected content and replace with image if (globalDoc.selection.type == htmlSelectionControl && !txtFileName.fImageLoaded) { grngMaster.execCommand('Delete'); grngMaster = globalDoc.selection.createRange(); } idstr = "\" id=\"556e697175657e537472696e67"; // new image creation ID if (!txtFileName.fImageLoaded) { grngMaster.execCommand("InsertImage", false, idstr); elmImage = globalDoc.all['556e697175657e537472696e67']; elmImage.removeAttribute("id"); elmImage.removeAttribute("src"); grngMaster.moveStart("character", -1); } else { elmImage = grngMaster.item(0); if (elmImage.src != txtFileName.value) { grngMaster.execCommand('Delete'); grngMaster = globalDoc.selection.createRange(); grngMaster.execCommand("InsertImage", false, idstr); elmImage = globalDoc.all['556e697175657e537472696e67']; elmImage.removeAttribute("id"); elmImage.removeAttribute("src"); grngMaster.moveStart("character", -1); txtFileName.fImageLoaded = false; } grngMaster = _getTextRange(elmImage); } if (txtFileName.fImageLoaded) { elmImage.style.width = txtFileName.intImageWidth; elmImage.style.height = txtFileName.intImageHeight; } if (txtFileName.value.length > 2040) { txtFileName.value = txtFileName.value.substring(0,2040); } elmImage.src = txtFileName.value; if (txtHorizontal.value != "") { elmImage.hspace = parseInt(txtHorizontal.value); } else { elmImage.hspace = 0; } if (txtVertical.value != "") { elmImage.vspace = parseInt(txtVertical.value); } else { elmImage.vspace = 0; } elmImage.alt = txtAltText.value; if (txtBorder.value != "") { elmImage.border = parseInt(txtBorder.value); } else { elmImage.border = 0; } elmImage.align = selAlignment.value; grngMaster.collapse(false); grngMaster.select(); window.close();}</SCRIPT><BODY id=bdy style="BACKGROUND: buttonface; COLOR: windowtext" scroll=no onload=Init()>...<BUTTON id=btnOK style="LEFT: 31.36em; WIDTH: 7em; TOP: 1.06em; HEIGHT: 2.2em" tabIndex=40 type=submit>确定</BUTTON><BUTTON id=btnCancel style="LEFT: 31.36em; WIDTH: 7em; TOP: 3.65em; HEIGHT: 2.2em" onclick=window.close(); tabIndex=45 type=reset>取消</FONT></BUTTON>为什么这个代码没有“document.getElementById('btnOK');”却能正确输出呢? index.html var arr = showModalDialog("selcolor.html", "", "dialogWidth:18.5em; dialogHeight:17.5em; status:0; location:yes;");selcolor.html<SCRIPT language=JavaScript>window.returnValue = SelColor.value;window.close();</SCRIPT>window.returnValue 会赋予arr 为什么点击切换一个新的窗体按钮,电脑上看不到任何变化呀 在VS2008中配置Spket(JS辅助工具) 请教javascript如何限制一个input里输入内容 如何把这个JS写入我的JS文件中? 语法错误 给隐藏表单域赋值? 哪位有document.selection的详细文档?谢谢。 求菜单,类似于ie菜单模式 一棵JS树,好难看懂,哪位大侠能帮我写些注释(我要把它改成用java代码来生成) 找编辑器!(大家来拿分) 如何获取框架里网页(已经改变了url)的location 回车保存数据的问题。
btnOK.onclick = new Function("btnOKClick()");
<SCRIPT defer>function _CloseOnEsc() {
if (event.keyCode == 27) { window.close(); return; }
}function _getTextRange(elm) {
var r = elm.parentTextEdit.createTextRange();
r.moveToElementText(elm);
return r;
}function HandleError(message, url, line) {
var str = "An error has occurred in this dialog." + "\n\n"
+ "Error: " + line + "\n" + message;
alert(str);
window.close();
return true;
}function Init() {
var elmSelectedImage;
var htmlSelectionControl = "Control";
var globalDoc = window.dialogArguments;
//var grngMaster = globalDoc.selection.createRange(); // event handlers
document.body.onkeypress = _CloseOnEsc;
btnOK.onclick = new Function("btnOKClick()"); txtFileName.fImageLoaded = false;
txtFileName.intImageWidth = 0;
txtFileName.intImageHeight = 0; if (globalDoc.selection.type == htmlSelectionControl) {
if (grngMaster.length == 1) {
elmSelectedImage = grngMaster.item(0);
if (elmSelectedImage.tagName == "IMG") {
txtFileName.fImageLoaded = true;
if (elmSelectedImage.src) {
txtFileName.value = elmSelectedImage.src.replace(/^[^*]*(\*\*\*)/, "$1"); // fix placeholder src values that editor converted to abs paths
txtFileName.intImageHeight = elmSelectedImage.height;
txtFileName.intImageWidth = elmSelectedImage.width;
txtVertical.value = elmSelectedImage.vspace;
txtHorizontal.value = elmSelectedImage.hspace;
txtBorder.value = elmSelectedImage.border;
txtAltText.value = elmSelectedImage.alt;
selAlignment.value = elmSelectedImage.align;
}
}
}
}
txtFileName.value = txtFileName.value || "http://";
txtFileName.focus();
}function _isValidNumber(txtBox) {
var val = parseInt(txtBox);
if (isNaN(val) || val < 0 || val > 999) { return false; }
return true;
}function btnOKClick() {
var elmImage;
var intAlignment;
var htmlSelectionControl = "Control";
var globalDoc = window.dialogArguments;
var grngMaster = globalDoc.selection.createRange(); // error checking if (!txtFileName.value || txtFileName.value == "http://") {
alert("图像连接不能为空");
txtFileName.focus();
return;
}
if (txtHorizontal.value && !_isValidNumber(txtHorizontal.value)) {
alert("水平间距必须介于 0 -- 999.");
txtHorizontal.focus();
return;
}
if (txtBorder.value && !_isValidNumber(txtBorder.value)) {
alert("边宽必须介于 0 -- 999.");
txtBorder.focus();
return;
}
if (txtVertical.value && !_isValidNumber(txtVertical.value)) {
alert("垂直间距必须介于 0 -- 999.");
txtVertical.focus();
return;
} // delete selected content and replace with image
if (globalDoc.selection.type == htmlSelectionControl && !txtFileName.fImageLoaded) {
grngMaster.execCommand('Delete');
grngMaster = globalDoc.selection.createRange();
} idstr = "\" id=\"556e697175657e537472696e67"; // new image creation ID
if (!txtFileName.fImageLoaded) {
grngMaster.execCommand("InsertImage", false, idstr);
elmImage = globalDoc.all['556e697175657e537472696e67'];
elmImage.removeAttribute("id");
elmImage.removeAttribute("src");
grngMaster.moveStart("character", -1);
} else {
elmImage = grngMaster.item(0);
if (elmImage.src != txtFileName.value) {
grngMaster.execCommand('Delete');
grngMaster = globalDoc.selection.createRange();
grngMaster.execCommand("InsertImage", false, idstr);
elmImage = globalDoc.all['556e697175657e537472696e67'];
elmImage.removeAttribute("id");
elmImage.removeAttribute("src");
grngMaster.moveStart("character", -1);
txtFileName.fImageLoaded = false;
}
grngMaster = _getTextRange(elmImage);
} if (txtFileName.fImageLoaded) {
elmImage.style.width = txtFileName.intImageWidth;
elmImage.style.height = txtFileName.intImageHeight;
} if (txtFileName.value.length > 2040) {
txtFileName.value = txtFileName.value.substring(0,2040);
} elmImage.src = txtFileName.value; if (txtHorizontal.value != "") { elmImage.hspace = parseInt(txtHorizontal.value); }
else { elmImage.hspace = 0; } if (txtVertical.value != "") { elmImage.vspace = parseInt(txtVertical.value); }
else { elmImage.vspace = 0; } elmImage.alt = txtAltText.value; if (txtBorder.value != "") { elmImage.border = parseInt(txtBorder.value); }
else { elmImage.border = 0; } elmImage.align = selAlignment.value;
grngMaster.collapse(false);
grngMaster.select();
window.close();
}
</SCRIPT><BODY id=bdy style="BACKGROUND: buttonface; COLOR: windowtext" scroll=no onload=Init()>
...
<BUTTON id=btnOK style="LEFT: 31.36em; WIDTH: 7em; TOP: 1.06em; HEIGHT: 2.2em" tabIndex=40 type=submit>确定</BUTTON><BUTTON id=btnCancel style="LEFT: 31.36em; WIDTH: 7em; TOP: 3.65em; HEIGHT: 2.2em" onclick=window.close(); tabIndex=45 type=reset>取消</FONT></BUTTON>
为什么这个代码没有“document.getElementById('btnOK');”却能正确输出呢?
var arr = showModalDialog("selcolor.html", "", "dialogWidth:18.5em; dialogHeight:17.5em; status:0; location:yes;");
selcolor.html
<SCRIPT language=JavaScript>
window.returnValue = SelColor.value;
window.close();
</SCRIPT>window.returnValue 会赋予arr