为什么无法通过此站点上的JS访问元素?

时间:2012-09-12 07:59:10

标签: javascript

我正在谈论的网站:https://sephir.ch/vfi/user/lernendenportal/index.cfm

我想制作一个简单的书签,将我的电子邮件和密码填入这两个文本框中。我的JS代码适用于任何其他网站,但不适用于此网站。

HTML:

 <input type="text" name="email" size="40" maxlength="60" class="tdschwarz" autocomplete="off">

JS:

 javascript:function fill() {alert(document.getElementsByName("email")[0].value);} fill();

错误:

 Uncaught TypeError: Cannot read property 'value' of undefined 

你们有什么想法为什么它不起作用?提前谢谢。

3 个答案:

答案 0 :(得分:2)

由于电子邮件字段位于框架内,因此document对象与字段的对象不同。

要访问该字段,首先必须获取它所属的文档对象。检查DOM,您必须访问#mainFrame框架:

var frame = document.getElementsByName("mainFrame")[0];

现在你可以获得元素:

var email = frame.contentDocument.getElementsByName("email")[0];

这适用于现代浏览器。在IE8及更早版本中,有一个很好的document.frames属性可以使事情变得更容易:

var email = document.frames.mainFrame.document.getElementsByName("email")[0];

答案 1 :(得分:2)

使用window.mainFrame.document

获取
javascript:function fill() {alert(window.mainFrame.document.forms['login'].email.value);} fill();

答案 2 :(得分:1)

输入位于iframe中。您首先需要获取iframe,然后获取输入元素。

document.getElementsByName('mainFrame')[0].contentDocument.getElementsByName('email')[0]