为什么在这个网站上不能通过JS访问元素

Why is it not possible to access elements via JS on this site?

本文关键字:JS 访问 元素 不能 网站 为什么      更新时间:2023-09-26

我所说的网站: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 

你们知道为什么它不起作用吗?提前谢谢。

因为电子邮件字段在一个框架内,所以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];

使用window.mainFrame.document:获取

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

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

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