gpt4 book ai didi

javascript - "Can' t 在 IE8 中使用带原型(prototype)的 Javascript 从释放的脚本执行代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:28:15 26 4
gpt4 key购买 nike

这是我在这里的第一个问题,所以这里......

我在 IE8 中遇到一个问题,我有一个弹出窗体 (window.showDialog()) 用于在会计系统中编辑收据信息。

在我不得不通过添加一个动态构建的输入字段表来添加更多内容之前,它一直运行良好。我正在将信息返回到一个数组中,但这似乎是我的错误发生的地方。 var pinputs = []; 似乎是导致问题的原因。

弹出表单中的js函数:

function saveForm() {
if($('user_id')){
var user_id = $F('user_id');
} else {
var user_id = 0;
}
var payments = $$('.payment');
var pinputs = [];
for(var i=0; i<payments.length; i++){
pinputs.push($F(payments[i]));
}
window.returnValue = {received_of: $F('received_of'), user_id: user_id,
note: $F('note'), work_date: $F('work_date'), payment: pinputs};
window.close();
}

父js文件中的js函数:

function modifyReceiptInformation(id) {
return window.showModalDialog('mod.php?mod=receipts&mode=receipt_edit_popup&wrapper=no&receipt_id=' + id, 'Modify Receipt',"dialogWidth:600px;dialogHeight:500px");
}

我在这里已经发现了类似的情况,但涉及从子窗体调用函数,我在这里没有这样做。也许我不明白解决方案?我不是 JS 专家,所以任何输入都会有所帮助。

--编辑--

忘记在此处添加 var payments = $$('.payment'); 是我的模板文件中的输入字段数组。

最佳答案

您可能试图在弹出窗口关闭后访问弹出窗口返回的数组上的方法。返回的数组是在弹出窗口上构建的,并且取决于弹出窗口是否可用。

所以你有几个选择:

  • 不要从弹出脚本中关闭弹出窗口。让您的父处理程序对数组执行所需的操作(例如使用 [].concat(popupArray) 将其克隆到自己的数组中),然后关闭弹出窗口。

  • 将您的数组转换为字符串以跨越弹出窗口/父边界。如果您不关心 IE6/7,JSON.stringify()/JSON.parse() 可以很好地完成这项工作。这样,您仍然可以从弹出脚本中关闭弹出窗口(显然,字符串对象不会在 IE 中出现该特定问题。)

关于javascript - "Can' t 在 IE8 中使用带原型(prototype)的 Javascript 从释放的脚本执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com