我有这种情况,我有一个父窗口(窗体名称:pform),单击父窗口上的按钮,我向用户显示一个Iframe。 Iframe最初是Parent窗口的一部分,但有一个设施可以取消Iframe。 Iframe有一个单独的表格。 By Undocked我的意思是将整个iframe与表单(表单名称:cform)一起复制到一个新窗口中。
如何从“父窗口”中评估Iframe中的隐藏变量(id =“r111.o1”和“r111.o2”)。
<form method="post" action="xxx" name="pform" id="pform">
<div>
<div class="iframe">
<iframe>
<form name="cform" id="cform" >
<input type="hidden" value="1" name="r111.o1" id="r111.o1">
<input type="hidden" value="1" name="r111.o2" id="r111.o2">
...
</form>
在iframe取消停靠后,
<form method="post" action="xxx" name="pform" id="pform">
<div>
<div class="iframe">
</form>
<html><div><iframe>
<form name="cform" id="cform" >
<input type="hidden" value="1" name="r111.o1" id="r111.o1">
<input type="hidden" value="1" name="r111.o2" id="r111.o2">
....
我怎样才能访问隐藏变量?这可能吗???
更新: 我编写了这个JS代码,我能够识别停靠或取消停靠的窗口/ iframe。
XT.Assess = {};
XT.Assess.windows = new Array(); // creating array to keep track of the child window ( undocked)
XT.Assess.iframes = new Array(); // creating array to keep track of the iframe ( docked)
function validateRub(id) {
var rubWindow = XT.Assess.windows[id];
if( rubWindow ){ // undocked
console.log( 'rubWindow = '+rubWindow );
var rubcont = rubWindow.contentDocument || rubWindow.contentWindow.document;
console.log( 'rubcont = '+rubcont );
var rubIframe = XT.Assess.iframes[id]; // not working
console.log( 'rubrIframe = '+rubrIframe );
}
else { //docked
var rubIframe = XT.Assess.iframes[id];
console.log( 'rubIframe = '+rubIframe );
var ifr = document.getElementById('Iframe0');
console.log( 'ifr= '+ ifr);
var ifrDoc = ifr.contentDocument || ifr.contentWindow.document;
console.log( 'ifrDoc= '+ifrDoc );
var theForm = ifrDoc.getElementById('cform'); // Iframe
console.log( 'theForm= '+theForm );
}
return false;
}
我现在需要的是一个代码来迭代对象rubIframe
和rubWindow
中的HTML元素。我是走在正确的道路上吗?
提前谢谢。
答案 0 :(得分:0)
var iframe = document.getElementById("yourFrameId");
var iframeContent = (iframe.contentWindow || iframe.contentDocument);
然后你可以调用该文件的任何功能,如
iframeContent.myfunction();