0

我正在编写一些 15 年前的代码,并且有一条线似乎只在 IE 中实际设置并可用。我无法更改该行,因为实际上它们更多并且在其他 asp 页面中引用,我知道,这是一场噩梦。编码:

parent.frmParent.id_item.value = '<%=Request("id_item")%>' //The actual string
                                                           //doesn't matter...

我试过了:

var parent.document.getElementById("id_item").Value
var parent.document.getElementById("frmParent")("id_item").Value

我接近了吗?它必须存在于 DOM 中。

4

5 回答 5

1

它应该是小写字母value(而不是Value)...

parent.document.getElementById("id_item").value
于 2012-07-24T12:41:38.293 回答
0

您的帖子已标记为javascript,但此代码段绝对是服务器端的:<%=Request("id_item")%>

这将简单地打印出集合中的id_item字段Request(或者可能调用名为 的方法Request)。您应该查看此页面后面运行的服务器端框架并相应地更新您的帖子。如果不了解您使用的语言,我将无能为力。

于 2012-07-24T12:52:42.213 回答
0

我接近了吗?它必须存在于 DOM 中。

我怀疑你正在寻找.value- 即只是小写,例如

var val = parent.document.getElementById("id_item").value;

这将是从具有 id 的元素中检索值的方法id_item

但是我怀疑这不是代码应该做的......

于 2012-07-24T12:41:26.147 回答
0

我要在这里做一个长镜头:

<%=Request("id_item")%>id_item可能是指.NET Request 对象的键的查询字符串值。尝试使用它:

var qs = window.location.search(1);
var items = qs.split('&');
var pair;
var result;

for (var i = 0; i < items.length; i++) {
    pair = items[i].split('=');

    if (pair[0] === 'id_item') { // the QS key
        result = pair[1]; // the QS value
        break;
    }
}

var element = document.getElementById(result);

将查询字符串逻辑放入函数中可能是值得的,例如getQuerystringValue(querystring, key).

附带说明,该属性 is .value, not .Value, javascript 区分大小写。

于 2012-07-24T12:48:33.387 回答
0

啊,我现在看到了。您的问题可能是 IE 会自动添加文档中的 id 作为相应窗口对象的属性。在这些情况下,您需要将属性访问替换为document.getElementById(idName).

通过查看您的示例,我的精神力量说这frmParent是一个普通的 Javascript 属性(指向另一个 javascript 窗口)带id_item是一个元素 ID(祖父母文档中的某些东西)。如果是这种情况,请查看以下是否有效:

parent.frmParent.document.getElementById("id_item").value = /*...*/
于 2012-07-24T13:41:29.277 回答