我正在尝试通过ID获取元素并更新它但我似乎遇到了麻烦,因为我对javascript很新。这是我的表格:
<div class="formRow billingForm">
<div class="formLabel">First Name</div>
<div class="formField">
<input type="text" class="formTextField firstName" value="" name="firstName" maxlength="35" id="firstName">
</div>
<div class="formExtraInfo formExtraInfoTall">Enter your name.</div>
</div>
我正在尝试通过执行以下“
来更新”firstname“的值document.getElementById("firstName").value = "UPDATED";
并且它有效,但是当我在我的实际网站上尝试它时,即使它存在,我也会得到null元素。整个表格虽然在iframe里面。
答案 0 :(得分:2)
您无法使用外部的脚本访问iframe的内容 - 这会引入XSS漏洞。您需要以某种方式在iframe中加载该脚本或完全避免使用iframe。请查看same origin policy上的此页面,了解有关原因无效的信息。
答案 1 :(得分:1)
试
iframe = getElementByTagName('iframe').contentWindow.document
iframe.getElementById('firstName').value = 'UPDATED'
答案 2 :(得分:0)
当您调用iframe时,您还会调用另一个HTML页面。 您必须在此iframe的目标页面中执行脚本编写。
答案 3 :(得分:0)
确保父网页和iframe网页的网址相同,然后就可以了。这是访问内部表单的父级的JS。
var iframe = document.getElementById('iframeId');
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
innerDoc.getElementById("firstName").value = "UPDATED";
希望它有所帮助 :)
答案 4 :(得分:0)
如果表单位于iframe内,并且您要从iframe的父级更新表单元素的值,请使用以下内容:
将值分配给表单名称,如下所示:
<iframe src="formPage.html" onload="loaded()" name="myFrame" />
并将id赋给表单元素,例如“myForm”
访问iframe中的表单元素:
myFrame.document.getElementById("myForm").firstName.value = 'UPDATED';
还要确保在加载iframe后运行脚本。您的iframe标记有一个onload事件,您可以使用该事件来确定何时加载帧中的页面。