我在做项目的时候,遇到一个情景当时是替换iframe,设置里面input内容。而我设置input内容是要放到iframe的onload事件里,我本地调试没有问题,放到服务器就出现input框内容获取不到,后来找来找去,找到原因是iframe刚开始加载的时候才会调用onload事件,原因找到了然后就是解决方法。我是这样解决的,首先创建div,div里面包括iframe。
在通过jquery的方法load事件取代onload事件,我的.net代码如下(仅供参考):
var tabcv = document.getElementById("left-box");
var div = document.createElement("div");
div.innerHTML = href2;
div.style.width = "100%";
div.style.height = "100%";
var href2 = "<iframe width='100%' height='100%' id = 'myFrame' src= \"" + pathAnswerArry[clickCount - 1] + "\"></iframe>";
div.innerHTML = href2;
tabcv.innerHTML = "";
tabcv.appendChild(div);
$("#myFrame").on('load', function () {
var inputs = $(document.getElementById("myFrame").contentDocument.getElementsByClassName("ipt"));
for (var i = 0; i < inputs.length; i++) {
var input = $(document.getElementById("myFrame").contentDocument.getElementsByClassName("ipt")[i]);
if (tmpAns[i] == undefined) {
input.val("");
} else {
input.val(tmpAns[i]);
}
input.css("background", "rgba(0, 0, 0, 0)");
input.attr({ "disabled": "disabled" });
})
注意使用jquery的方法时要使用比较高版本的jquery 的js