$.fancybox({
type: 'iframe',
href: url,
afterShow: function() {
var name = parent.$('#pname').val();
$('#fname').val(name);
$('#fname').focus();
return true;
},
beforeClose: function(){
clsCarr();
},
其中pname
是父文档中的输入框,fname是fancybox文档中的输入框。如何将pname
的值放入fname
? afterShow
知道pname
的价值,但未将其放入fname
。
答案 0 :(得分:0)
我刚看到这是fancybox中的iframe
。尝试将iframe带到"谈话"与他们的父母文件,所以我不是肯定的我已经100%正确。 :)
var name = parent.getElementById("lst-ib").value;
document.querySelector("#fancybox-content iframe").contentDocument.getElementById("fname").value = name;
我的想法背后可能是您的$.fancybox
可能正在您的父文档中运行,而当您使用parent.$('#pname').val()
时,它将等同于运行$('#pname').val()
,因为父级将无法运行任何更高的'比根文件。
因此,如果我的理论是正确的,您需要获取iframe
并访问其contentDocument
(或者只是document
),并获取其中的元素的ID iframe中。
这显然只有在iframe
使用与您的父文档相同的域时才有效。我相信浏览器现在实现了某种跨域验证。