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

标签 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 

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

最佳答案

由于电子邮件字段位于框架内,因此 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];

关于javascript - 为什么无法通过JS访问该站点上的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12383626/

相关文章:

javascript - 从 ul 获取一级 li

javascript - 当我将 jQuery 与 ajax (XMLhttpREquest) 结合使用时,jQuery 不起作用,为什么?

javascript - 更新用户: save already filled in details

javascript - Angular Material 自定义类按钮问题

javascript - Phaser 无法检测碰撞

javascript - Django 作为 API + ReactJS - Redux : POST request with CSRF token but still response CSRF Token not set

javascript - 如何删除 HTML 表格中的所有 <tr> 元素(第一个元素除外)

javascript - 在 JavaScript 中获取另一个项目下方的项目

javascript - 如何检查字符串是否是有效的十六进制颜色表示?

javascript - 如何更改 Fabric.js 调整大小句柄的默认外观?