0

我正在谈论的网站: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 

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

4

3 回答 3

2

得到它window.mainFrame.document

javascript:function fill() {alert(window.mainFrame.document.forms['login'].email.value);} fill();
于 2012-09-12T08:07:39.283 回答
2

因为email字段在一个框架内,所以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];
于 2012-09-12T08:01:46.543 回答
1

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

document.getElementsByName('mainFrame')[0].contentDocument.getElementsByName('email')[0]
于 2012-09-12T08:05:21.307 回答