如何以编程方式单击从其他页面加载的按钮

how to programatically click a button thats loaded from another page?

本文关键字:加载 按钮 其他 编程 方式 单击      更新时间:2023-09-26
<html>
<head>
<title>My HTML application</title>
<HTA:APPLICATION 
    id="frames" 
    border="thin" 
    caption="yes" 
    icon="http://www.google.com/favicon.ico" 
    showintaskbar="yes" 
    singleinstance="yes" 
    sysmenu="yes" 
    navigable="yes" 
    contextmenu="no" 
    innerborder="no" 
    scroll="auto" 
    scrollflat="yes" 
    selection="yes" 
    windowstate="normal" />
    </head> 
    <frameset rows="60px, *"> 
        <frame src="topo.htm" name="topo" id="topo" application="yes" /> 
        <frame src="http://localhost/nph-psf.exe?HOSTID=AD&ALIAS=" name="conteudo" id="psyncLink" application="yes" /> 
    </frameset> 
</html> 

在我的框架集中,我有一个网页正在加载。我无法编辑从 显示的代码

http://localhost/nph-psf.exe?HOSTID=AD&ALIAS=

该页面有一个按钮,需要单击该按钮才能继续。我想用我的HTA应用程序自动化它,以便在页面加载时自动为用户单击按钮。

代码可以是 VBScript 或 JavaScript。关键是以编程方式单击按钮,这样用户就不必这样做了。

我要单击的按钮具有以下 HTML 代码行

<INPUT border=0 type=image alt="Use a password" name="SUBMIT-password.pss" src="docs/pics/en-us/useapassword_button.jpg">

单向;

<script type="text/javascript">
function doClick(fr) {
    var btn = fr.contentWindow.document.getElementsByName("SUBMIT-password.pss");
    if (btn.length === 0) {
        alert("no button!");
        return;
    } else {
        btn[0].click();
    }
}
</script>
<frameset rows="60px, *"> 
    <frame src="topo.htm" name="topo" id="topo" application="yes" /> 
    <frame src="http://localhost/nph-psf.exe?HOSTID=AD&ALIAS=" name="conteudo" id="psyncLink" application="yes" onload="doClick(this);"/> 
    </frameset> 
</html> 

你可以试试这个javascript。 由于该元素没有 ID,我们必须通过返回数组的 Name 来获取它。 您也可以按标签名称获取,但我不确定另一页上会有多少输入。

try{
     window.frames[1].document.getElementsByName('SUBMIT-password.pss')[0].click();
}catch(Exception){
    alert('hi');
}

如果您有权访问正在加载的页面,则可以模拟单击按钮。我认为最简单的方法是jQuery点击。检查这个:http://api.jquery.com/click/。

在页面末尾添加一个小脚本,单击它应该没问题。

如果您没有访问权限...如果页面加载到 iframe 中,您仍然可以操作 dom 来选择按钮并单击它,但会有点困难。