javascript - 更改 JavaScript 函数定义导致 Object 在 IE 上不支持属性或方法,但在 chrome 中可用

标签 javascript internet-explorer

我最初有以下 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/

相关文章:

javascript - PyQt4 : Trigger click on a javascript link

jquery - 修复IE中不写 'px or %'的行内样式的宽度

javascript - Internet Explorer 9 不向 Nodejs 中的数据库发送数据

javascript - IE11 上的 "Error: Invalid argument."

javascript - 切换 Bootstrap 选项卡

javascript - 谷歌地图 API - 未捕获的 ReferenceError : directionsService is not defined

javascript - 在javascript中使用sortBy按值升序排序散列

javascript - 在继续通过单独的功能之前等待 AJAX

internet-explorer - IE 文本渐变渲染

html - 显示 :table & display:table-cell not working in IE9