我正在使用经典的ASP。
我有2个包含有两种不同形式的包含。它们在名称上都是独一无二的。但是,当我尝试读取第二种形式的元素的值时,我得到一个错误,说它是null。但是,当我在Firebug中查看源代码时,我可以看到该元素中存在一个值。
我的javascript代码:
console.log(document.getElementById('focusValue').value);
萤火虫的输出:
<input id="focusValue" type="hidden" value="1006" name="focusValue">
我有什么需要做的,因为这个“渲染”屏幕上有2个表单吗?我认为应该提到的另一件事是这些页面都在iFrame中。不确定这是否真的很重要......
答案 0 :(得分:0)
看不到你的页面,所以很难调试。假设脚本在表单之后运行。我唯一能想到的是页面上有多个元素,其id为“focusValue”。
console.log(document.getElementById('focusValue'))
答案 1 :(得分:0)
iFrame在包含文档中创建单独的文档,您需要先获取对该文档的引用,然后才能访问其内容。 http://www.dyn-web.com/tutorials/iframes/有一个合理的教程。
如果页面中只有一个iFrame,则可以通过以下方式引用它:
var frame = window.frames[0];
或者你可以使用带有 getElementById 的id。要获得对文档的引用:
var doc;
if (frame) {
doc = frame.contentDocument || frame.contentWindow.document;
}
现在你可以进入输入元素:
var input = doc && doc.getElementById('focusValue');
当然,这一切都取决于您遵守相同的原始政策,否则您无法访问框架内容。