三个文件A,B,C,D
A镶嵌一个框架,包含了B,B showDialog弹出C,在c中弹出D上传文件,上传后返回到了C,C再返回到B。具体过程如上描述。以上是一个Html编辑器的一个上传图片的功能。此功能上传了图片把值从D返回给了B。但我还要把值在返回给A页面中的text这个input内。实现这个功能,遇到麻烦,请大家一起讨论和帮忙。
以下截取部分代码。
A的form名是ttform,input是testB中 ShowDialog('dialog/img.htm', 350, 315, true)C就是img页面,其中代码function UploadSaved(sFileName){
d_fromurl.value=GetHttpUrl(config.StyleUploadDir+sFileName);
ReturnValue();
}function ReturnValue(){
sFromUrl = d_fromurl.value;
sAlt = d_alt.value;
sBorder = d_border.value;
sBorderColor = d_bordercolor.value;
sFilter = d_filter.options[d_filter.selectedIndex].value;
sAlign = d_align.value;
sWidth = d_width.value;
sHeight = d_height.value;
sVSpace = d_vspace.value;
sHSpace = d_hspace.value; if (sAction == "MODI") {
oControl.src = sFromUrl;
oControl.alt = sAlt;
oControl.border = sBorder;
oControl.style.borderColor = sBorderColor;
oControl.style.filter = sFilter;
oControl.align = sAlign;
oControl.width = sWidth;
oControl.height = sHeight;
oControl.vspace = sVSpace;
oControl.hspace = sHSpace;
}else{
var sHTML = '';
if (sFilter!=""){
sHTML=sHTML+'filter:"'+sFilter+';';
}
if (sBorderColor!=""){
sHTML=sHTML+'border-color:"'+sBorderColor+';';
}
if (sHTML!=""){
sHTML=' style="'+sHTML+'"';
}
sHTML = '<img src="'+sFromUrl+'"'+sHTML;
if (sAlt!=""){
sHTML=sHTML+' alt"'+sAlt+'"';
}
if (sAlign!=""){
sHTML=sHTML+' align="'+sAlign+'"';
}
if (sWidth!=""){
sHTML=sHTML+' width="'+sWidth+'"';
}
if (sHeight!=""){
sHTML=sHTML+' height="'+sHeight+'"';
}
if (sVSpace!=""){
sHTML=sHTML+' vspace="'+sVSpace+'"';
}
if (sHSpace!=""){
sHTML=sHTML+' hspace="'+sHSpace+'"';
}
sHTML=sHTML+'>';
dialogArguments.insertHTML(sHTML);
//dialogArguments.document.getElementById("test").value="OK";   此处就是我想实现传递到A的代码,请问如何写 } window.returnValue = null;
window.close();
}D页面就是upload.jsp,代码如下   out.println("<script language=javascript>");
    out.print("parent.UploadSaved('");
out.print(sSaveFileName);
out.print("');var obj=parent.dialogArguments.dialogArguments;if (!obj) obj=parent.dialogArguments;try{obj.addUploadFile('");
out.print(sOriginalFileName);
out.print("', '");
out.print(sSaveFileName);
out.print("', '");
out.print(sPathFileName);
out.print("');} catch(e){}");
out.println(";history.back()</script>");

解决方案 »

  1.   

    ShowDialog('dialog/img.htm',window,350, 315, true) 
    把b中的对象document作为参数传递到c这样在c中就可以使用dialogArguments.document.getElementById("test").value="OK";  了
      

  2.   

    还是不行。提示缺少dialogArguments.document.getElementById("....")为空或不是.......
      

  3.   

    B中 ShowDialog('dialog/img.htm', self, 350, 315, true);dialogArguments.parent.document.ttform.test.value="OK";  
      

  4.   

    谢谢hookee ,成功了。立即结贴。