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;
}
}
我想requestPassword是一个bool方法,但后来我知道Javascript不支持方法名称,如
public bool nameofmethod()
我认为语法是正确的。任何帮助将不胜感激!
答案 0 :(得分:0)
requestingPassword()
会立即调用 。调用frames[1].document.....
方法时,页面很可能没有完成加载。在这种情况下,frames[1].document
为null
,这会导致抛出错误。
要解决此问题,只需在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;
window.frames[1]
引用框架(这不容易维护),而是使用frame.contentWindow
(支持得非常好,并且不依赖于框架位置的知识) onload
设置为属性不会绑定IE6中的事件。如果您必须支持IE6,请使用.attachEvent("onload", func..);
。