【问题标题】:Using Frames in IE10 causes SCRIPT5002: Function expected error在 IE10 中使用 Frames 会导致 SCRIPT5002:函数预期错误
【发布时间】:2013-04-10 00:57:23
【问题描述】:

我一直在互联网上进行了大量搜索,但尚未找到解决此问题的方法。发生的事情是我有一个页面根据导航点击呈现在一个框架中。此功能在 IE10 之前的所有其他浏览器版本中有效并且已经有效多年,并且在兼容模式下继续完美运行,但我不想要兼容模式。基本上当我的函数到达这行代码时;

window.parent.frames(1).location='../frmsetPage.aspx?
sFrameScrolling=yes&pageurl=secCreating_Editing/secContent/wfContent.aspx?iPageID=' + 
p_iSitePageID + '&helpurl=secHelp/wfHelp.aspx?iBuilderPageID=29'

我得到了错误;

SCRIPT5002:预期功能

在我所做的所有研究中,唯一有意义的是谈论 window.parents.frames(1) 对象的贬值,但我似乎无法通过微软的任何东西来验证这一点,所以我真的不知道。

任何帮助将不胜感激! 非常感谢, 尼克G

【问题讨论】:

  • 你没有调用框架方法!它应该是方括号。
  • .frames(1). 应该是.frames[1]. frames 是所有帧的数组,而不是函数。
  • 如果必须与帧数组引用的语法不正确有关,为什么这在过去几年中可以在兼容模式和所有其他浏览器上工作?只是IE10在引用这些东西的时候制定了更严格的标准吗?
  • 因为网络本质上是(几乎没有记录的)标签汤,历史上浏览器战争的一部分是试图理解“蹩脚/非法/愚蠢”的代码。指定兼容性模式将重新启用 IE 中不可预知的“我猜得比 browserX 更好”的代码。克罗克福德是对的,最好的解决方案是重新开始。同时,只需学习Polyglot markup,就像在过去 15 年中将标准提炼成可靠的东西的其他 web 开发人员一样。恕我直言,它比非标准化的 html5 想法更有意义。
  • PS,出于(历史上的)兴趣(可能是为了嘲笑以牺牲 M$ 为代价),您能否分享一个使用 frames(#) 而不是 frames[#] 的官方 M$ 文档? (因为您刚刚在网上搜索过,正在研究您的框架问题。)

标签: javascript jquery compatibility internet-explorer-10


【解决方案1】:

试试:

window.parent.frames[1].location='../frmsetPage.aspx?
sFrameScrolling=yes&pageurl=secCreating_Editing/secContent/wfContent.aspx?iPageID=' + 
p_iSitePageID + '&helpurl=secHelp/wfHelp.aspx?iBuilderPageID=29'

代替:

window.parent.frames(1).location='../frmsetPage.aspx?
sFrameScrolling=yes&pageurl=secCreating_Editing/secContent/wfContent.aspx?iPageID=' + 
p_iSitePageID + '&helpurl=secHelp/wfHelp.aspx?iBuilderPageID=29'

原因:frames 集合像数组一样使用[] 而不是() 进行访问。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 2021-08-10
    • 1970-01-01
    相关资源
    最近更新 更多