0

私が話しているウェブサイト:https ://sephir.ch/vfi/user/lernendenportal/index.cfm

メールアドレスとパスワードを2つのテキストボックスに入力する簡単なブックマークレットを作成したかったのです。私の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

電子メールフィールドはフレーム内にあるため、documentオブジェクトはフィールドと同じではありません。

そのフィールドにアクセスするには、まず、そのフィールドが属するドキュメントオブジェクトを取得する必要があります。#mainFrameDOMを検査するには、フレームにアクセスする必要があります。

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 に答える
2

でそれを入手してwindow.mainFrame.documentください:

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

入力はiframeにあります。最初にiframeを取得してから、入力要素を取得する必要があります。

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