私はHTAを持っていますが、これにはIframeがあります。私たちはイントラネットのウェブサイトを読み込んでいます。 HTAのボタンをクリックすると、いくつかのタスクが自動化されます。最初のステップはログインし、次のページが読み込まれるのを待ってから、次のオプションを実行することです。主な関心事は、次のページが完全にロードされたことを知って、ページに関連するコードを開始できることです。IFrame内のウェブページ(HTA内にある)の読み込みが完了したときを知る
これを達成する方法について、ある人が光を当てることができますか。ちょうど繰り返すために、IFrameはHTAの中にあります。以下は
私のコードです:
<html>
<head>
<HTA:APPLICATION
APPLICATIONNAME="HTA"
SYSMENU="YES"
NAVIGABLE="YES"
>
<meta http-equiv="x-ua-compatible" content="ie=11">
<title>HTA</title>
<script type="text/javascript">
window.resizeTo(900,700);
</script>
<script type="text/javascript" >
function Start() {
var iframePage = document.getElementById("iframeid").contentDocument;
var userId = iframePage.getElementById("userid");
var passwd = iframePage.getElementById("pwd");
var form = iframePage.getElementById("login");
userId.value='aa';
passwd.value='bb';
form.submit();
var iframePages = document.getElementById("iframeid").contentDocument;
var targetContent = iframePages.getElementById ("ptifrmtgtframe").contentDocument;
var runcntl = targetContent.getElementById("PRCSRUNCNTL_RUN_CNTL_ID");
runcntl.value='test';
}
function Show() {
document.getElementById("iframe").style.display = "block";
}
</script>
</head>
<body>
<form class="form" name="form">
<input class="links" type="button" value="Show PIA" onclick="Show();" />
<input class="links" type="button" value="Login" onclick="Start();" />
</form>
<br>
<div class="iframe" id="iframe" style="display:none">
<iframe application="no" src="my URL" width="600" height="600" id="iframeid">
</div>
</body>
</html>
私がしたいこと:
var runcntl = targetContent.getElementById("PRCSRUNCNTL_RUN_CNTL_ID");
runcntl.value='test';
はiframe内のページのみ、関連することから、適切かつ完全をロードした後にのみ、実行する必要がありますフィールドが読み込まれます。そうしないと、エラーが発生します。
PSこれはPeopleSoftサイトです。
こんにちは@Robin、実際にIFrameは一度だけ読み込まれ、それから別のページに移動します。私はJavaスクリプト側から何かを必要とします。例: 1)IFrameが読み込まれ、ログインページが表示されます 2)ボタンをクリックすると自動的にログインします 3)次に、次のページが正しく読み込まれるまで待ってから別のテキストボックスを使用してテキストボックスを埋めなければなりませんJS関数。 お勧めします。 :-) –
@PrateekJaiswal異なるページに移動する場合は、実際に複数のページをiframeに読み込み、iframeのonloadイベントがメインページで表示されます。ページが変更されたときに、メインページで必要なオブジェクトへの参照をすべて再割り当てする必要があります。そうしないと、「アクセスが拒否されました」というエラーが発生します。 – Teemu
こんにちは@テーム、はい、私は、メインページから別のページに移動する、別のページの異なるJavaスクリプトを実行する必要があります。そのため、対応するページが完全に読み込まれるまでJSの実行を停止する必要があります。私はここで助けてもらえますか?または私はいくつかの他のアプローチを使用する必要がありますか? –