我有这个结构,我想根据之前的表单更改表单的值。问题是,iframe没有ID,我无法设置,因为它是一个从另一个域检索数据的插件。
...<input type="button" onclick="document.getElementById('betterplace').style.display='block';
var betterplace = document.getElementById('betterplace')[0];betterplace.getElementsByTagName('iframe')[0].document.getElementById('donation_presenter_address_first_name').value=document.getElementById('_vorname').value;
" style="border:none; height: 50px; width: 250px; font-weight:bold; font-size: 14pt; background-color:#94C119;color:white;cursor: pointer;" value="Ihre Spende abschließen"/>
<div id="betterplace" style="display:none;">
<div style="width:500px;height:2px;margin-bottom:5px;background-color: #94c119"/>
<br/>
<script type="text/javascript">
...
答案 0 :(得分:0)
这样的东西会调用框架:
parent.frames[1].doWhatEver
所有框架都放在一个数组中,您网站的第一帧将是parent.frames[0]
,第二帧是parent.frames[1]
,依此类推。
修改强>
如果这不起作用,您始终可以使用此方法:
parent.getElementsByTagName("iframe")[0].doWhatEver
// or
parent.getElementsByTagName("frame")[0].doWhatEver
getElementsByTagName(tagName)
返回一个数组,其中的元素包含tagName
(例如<iframe>
)。有了它,你可以得到你的框架。
答案 1 :(得分:0)
我无法理解您的问题,但如果您想在iframe中插入一些文字或html,您可以这样做:
var iframe = document.getElementById('your iframe id') // if the iframe is already exists
doc, div;
doc = iframe.contentDocument || iframe.contentWindow.document;
doc.open();
doc.write('some text') // if you want to write to the iframe
doc.close();
div = doc.createElement('div');
// this div will appear in iframe
doc.body.appendChild(div)
注意:如果iframe域与主页的域相同,则只能操纵iframe内容
动态创建iframe的示例:
var iframe = document.createElement('iframe'),
doc, div;
iframe.src = '' // same domain as main page
document.body.appendChild(iframe);
doc = iframe.contentDocument || iframe.contentWindow.document;
doc.open();
doc.write('some text') // if you want to write to the iframe
doc.close();
div = doc.createElement('div');
// this div will appear in iframe
div.appendChild(doc.createTextNode('im a div inside the iframe'));
doc.body.appendChild(div);
小提琴:here
答案 2 :(得分:-1)
如果它没有ID,你必须绘制DOM路径只需分析路径并在JavaScript或JQUERY中获取