我们有一个结帐流程,我们希望客户帐户中的一些其他信息与订单捆绑在一起。所以我希望我的脚本打开客户帐户页面获取字段值并将该值插入父页面上的提交订单表单。
function openWin() {
myWindow = window.open("https://customer/accountpage.php", "myWindow", "width=200, height=100");
fieldval = myWindow.document.getElementById("accountinfo").value;
document.getElementById("formfield").innerHTML = fieldval;
}
它打开了帐户页面就好了,但似乎它正赶上从子页面获取值。我不确定我做错了什么任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
使用window.open
打开另一个窗口时,内容将无法加载或准备就绪。假设文档来自same origin,解决此问题的一种方法是使用load
事件。
此外,您需要将value
用于输入元素,而不是innerHTML
。
function openWin() {
myWindow = window.open("https://customer/accountpage.php", "myWindow", "width=200, height=100");
myWindow.addEventListener('load', function() {
fieldval = myWindow.document.getElementById("accountinfo").value;
document.getElementById("formfield").value = fieldval;
});
}
答案 1 :(得分:0)
经过一段时间的尝试后,我发现亚历山大·奥马拉提供的代码是正确的,但在此之后我失踪的一件事是代替.innerHTML = fieldval;它必须是.value = fieldval;显然是因为它是一个输入,它希望我们使用.value而不是.innerHTML
Alexander O'mara正确的代码
function openWin() {
myWindow = window.open("https://customer/accountpage.php", "myWindow", "width=200, height=100");
myWindow.addEventListener('load', function() {
fieldval = myWindow.document.getElementById("accountinfo").value;
document.getElementById("formfield").value= fieldval;
});
}