我最初有以下 javascript 函数,该函数在多个文件(100 多个)中用于单击按钮。
function loadPage(CurrentPage, PageToMove) {
//Something Here
}
现在我正在更改此函数以再发送一个像这样的默认参数
function loadPage(CurrentPage, PageToMove, NewParam = false) {
//Something Here
}
这个函数是通过以下调用的
parent.frames[0].loadPage(20, 50);
虽然这适用于 Chrome 浏览器,但不适用于最新版本的 IE。
它给出了parent.frames[0]对象不支持属性或方法错误
如果我在更改函数后检查调试器上的方法,我看不到列出了 loadPage 函数。
但是在仅使用 2 个参数进行更改之前,如果我在调试器中检查并且它按预期工作,则该方法可用。
那么如何才能在 IE 上获得具有 3 个参数的此方法支持?
最佳答案
如果删除参数可以解决问题,那么就这样做。您可以像这样检查条件第三个参数...
function loadPage(CurrentPage, PageToMove) {
//Something Here
if (arguments.length > 2 && arguments[2] === true) {
// 3rd parameter was passed and is == true so do what you need to do
}
}
或者,如果您希望在函数中定义 NewParam
变量...
function loadPage(CurrentPage, PageToMove) {
var NewParam = (arguments.length > 2 && arguments[2] === true);
//Something Here
}
但是,我的首选方法是删除默认值并仅检查函数内的参数...
function loadPage(CurrentPage, PageToMove, NewParam) {
if (typeof(NewParam) == "undefined") {
NewParam = false;
}
//Something Here
}
关于javascript - 更改 JavaScript 函数定义导致 Object 在 IE 上不支持属性或方法,但在 chrome 中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38198331/