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