2016-11-07 16 views
0

イントラネットサイトの自動化を実現しようとしています。この目的のために、HTAとJavaスクリプトを使用しています。ブラウザでサイトを開くのではなく、HTA自体を使用してIframeを使用しています(ブラウザのセキュリティ設定では何もしないからです)。 Eメールはウェブサイトにログインすることができますが、それ以降の各ステップの後に、"未定義またはヌル参照のプロパティ '子'を取得できませんというエラーメッセージが表示されます。 以下のURLはです。http:// *******。*:8888/cs/domainname/cache/PT_HNAV_JS_MIN_1.jsHTA内のIFrameの要素を取得中にエラーが発生しました

具体的には、peoplesoftサイトです。誰かがこれを解決する方法について光を当てることができますか?以下は

HTMLコードです:

<html> 
    <head> 
    <HTA:APPLICATION 
     APPLICATIONNAME="HTA" 
     SYSMENU="YES" 
    > 

    <meta http-equiv="x-ua-compatible" content="ie=9"> 
    <title>HTA</title> 

    <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='@@'; 
    passwd.value='@@'; 
    form.submit(); 
    } 

    </script> 
    </head> 
    <body> 
    <form class="form" name="form"> 
     <input class="links" type="button" value="Project Plan" onclick="Start();" /> 
    </form> 
     <iframe application="no" src="http://****.**.****:8888/psp/sitename/?cmd=login&languageCd=ENG&" width="600" height="600" id="iframeid"> 

    </body> 
    </html> 

私はjsの関連ファイルの子供たちの最初のoccuranceを見つけることができる以下の通りです:

this.fakeBCReqWC = false; 
var bchidden = 0; 
if(eBC.childNodes.length == 0)  bchidden=1; 
this.bcScrollUl = ptUtil.id(pthNav.bcScrollId); 
if (eBC.children[1]) 
    var clickedURL = eBC.children[1].firstChild.href; 
var nChildren = 0;  
if  (this.bcScrollUl) 
    nChildren = this.bcScrollUl.children.length; 
var nIdx = 0; 
if  (this.fakeBCSetN) { 
var isBCpath = false; 
var fakechildindex = 0; 
var i = 0; 
while(nIdx <  nChildren) { 
    var child = this.bcScrollUl.children[nIdx]; 
if(child.id && child.id.indexOf ("FAKE") != -1 && child.firstChild &&  child.firstChild.href  == clickedURL) { 
    isBCpath = true; fakechildindex = nIdx; break; } 
    nIdx++; } 
+0

エラーが発生すると、スクリプトの実行を続行するかどうかを尋ねます。いずれかのオプション(はいまたはいいえ)をクリックするとすぐに、私はサイトにログインします。それはまさに私が欲しいものです。 :-) –

+0

あなたはまだ同じ問題がありますか?どうしてあなたの[前の質問]を削除しましたか(http://stackoverflow.com/questions/40416105/how-can-i-access-elements-inside-the-if​​rame-in-an-hta-using-vbs-and-試してみてください)、今度は基本的に同じ質問をしていますか? – Teemu

+0

こんにちは、前の質問で、私は要素にアクセスすることができませんでした。しかし、いくつかの変更の後、私はできました。したがって、前の質問は必要ではありませんでした。この質問は、別のエラーを指摘しています。 –

答えて

0

を指すようにX-UA-互換変更IE 11はこの問題を解決しました。以前はIE9を指摘していました。

0

ないように注意してください、あなたは、アプリケーション=「いいえ」をやった理由 iframeと親htaウィンドウが通信できるようにするには、application = "yes"を実行し、iframe domでhtaを操作できるようにする必要があります。 IE6/7での作業中しかし、それはHTAの私の経験からのものであり、それは

は、MSDNで詳細を参照長い時間前でした:

https://msdn.microsoft.com/en-us/library/ms536496(v=vs.85).aspx#Security

+0

ありがとうsagie、私はApplication = yesとnavigable = yesのままにしました。エラーは消え去った。しかし、WebページはIFrameの代わりに完全なHTAで開かれています。どのようにこれを離れて排除する?私はIFrameでそれを開き、HTAの別のボタンを使ってIFrameのイベントを制御する必要があるからです。 –

関連する問題