0
function getWindowsUserName()
{
    var WinNetwork = new ActiveXObject("WScript.Network");
    var urlToSite = createCustomURL(WinNetwork.UserName);
    document.getElementById("psyncLink").src = urlToSite;       
    if(requestingPassword())
    {
        alert("password button screen");
    } else {
        alert("direct password required");
    }
}

function requestingPassword()
{       // <-- This is the line that is getting the error
                          // Unspecified error
                          // Code: 80004005
                          // Microsoft JScript Runtime error
    var btn = window.frames[1].document.getElementsByName("SUBMIT-password.pss");
    if (btn.length == 0) {
        return false;
    } else {
        return true;
    }
}

requestingPasswordをboolメソッドにしたかったのですが、Javascriptが次のようなメソッド名をサポートしていないことを知りました。

public bool nameofmethod()

構文は正しいと思います。どんな助けでもいただければ幸いです!

4

1 に答える 1

0

requestingPassword()フレームのURLを設定した直後に呼び出されます。frames[1].document.....メソッドが呼び出されたときにページの読み込みが完了しなかった可能性が非常に高くなります。その場合、frames[1].documentnull、であり、エラーがスローされます。

この問題を解決するには、イベントでrequestingPassword関数を呼び出すだけです。onload

var frame = document.getElementById("psyncLink");
frame.onload = function() {
    frame.onload = null;
    if (requestingPassword()) {
        alert("password button screen");
    } else {
        alert("direct password required");
    }
};
frame.src = urlToSite;
  • 注1:フレームをwindow.frames[1](メンテナンスが容易ではない)で参照する代わりに、 frame.contentWindow(非常によくサポートされており、フレームの位置の知識に依存しない )を使用します
  • 注2:onloadプロパティとして設定すると、IE6-のイベントはバインドされません。IE6をサポートする必要がある場合は、を使用して.attachEvent("onload", func..);ください。
于 2012-06-18T15:24:16.830 に答える