我有一个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网站。
答案 0 :(得分:0)
这是一个在加载iframe
时调用代码的简单示例。查看onload
标记的iframe
属性。也许你可以把它整合到你的HTA中?
<head>
<script>
function frameLoaded() {
alert('frame loaded!');
};
</script>
</head>
<body>
<iframe id="frame" src="https://en.wikipedia.org/wiki/HTML_element#Frames" onload="frameLoaded(this)" />
</body>
&#13;
答案 1 :(得分:0)
如果您有权访问该页面,请使用javascript窗口间通信来触发您需要的JS。子iframe可以告诉父母何时运行java脚本。
从纯粹的PeopleSoft透视图中,您可以使用相关的动作框架组件事件来执行您喜欢的操作,而无需自定义。
答案 2 :(得分:0)
我认为您可以检查代码以获取相关内容作为参考。如OpenRCService和onRCService。在PT_COMMON中,还加载了与RC函数相关的showModalDialog方法,该方法具有检测iframe的逻辑。