【问题标题】:window.parent.$() doesn't work in IEwindow.parent.$() 在 IE 中不起作用
【发布时间】:2013-03-01 09:47:20
【问题描述】:

我不明白我下面的 sn-p,它在 chrome 中完美运行(尚未在 ff 中测试)但它在 IE 中出现错误,指出“无效参数”,有什么办法可以解决这个问题吗?

window.parent.$('#tdDealItem').append($wrap);

【问题讨论】:

  • $wrap 是使用 window.parent.$() 还是使用本地 $() 创建的?
  • 试试 parent.$('#tdDealItem').append($wrap);另外,iframe 的内容是否与父级在同一个域中? IE 有一些严格的权限规则,因此您可能会遇到其中之一。
  • 是的,iframe 的内容与父级在同一域内。
  • Frederic Hamidi - 我想我需要感谢你,因为你给了我线索。谢谢。

标签: javascript jquery internet-explorer iframe browser


【解决方案1】:

你试过去掉“窗口”部分,只使用parent.$('#tdDealItem').append($wrap);

【讨论】:

  • 是的,我试过了,我也试过这样 $('#tdDealItem', parent.document).append($wrap);但无济于事
【解决方案2】:

试试这个,

$(w.document.body).$('#tdDealItem').append($wrap);

【讨论】:

    【解决方案3】:

    我在使用 Silverlight 的 WebBrowser 控件形式的 IE-embedded-in-Silverlight 时遇到了同样的问题。

    修复有点奇怪,我不确定我是否理解为什么,但是,将我的解决方案应用到你的解决方案中,这只是将parent.jQuery 放入它是自己的变量,即:

    var parentjq = parent.jQuery;
    parentjq("#tdDealItem").append($wrap);
    

    出于某种原因,IE-in-SL 不喜欢语法 parent.jQuery(...).,给我“对象不支持方法 'jQuery' 的这个属性”。

    值得注意的是,这只发生在 IE-in-SL 中:在 IE7 浏览器模式下运行 IE7 strict 的 IE 没有出现同样的问题。但是YMMV。

    出于好奇(和完整性),我收到了问题/错误消息:

    var fldid = parent.$("body").data("dateFieldId");
    

    但拆分成后:

    var parentjq = parent.jQuery;
    var fldid = parentjq("body").data("dateFieldId");
    

    错误消失了,我得到了正确的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 2011-07-31
      • 2012-05-16
      • 2016-06-01
      • 2012-10-30
      • 2011-02-03
      • 2011-10-07
      相关资源
      最近更新 更多