2013-03-01 82 views
1

我不明白我的代码片段,它完全适用于chrome(尚未在ff中测试过),但它在IE中声明“Invalid argument”错误,Is有什么办法可以解决这个问题?

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

用'window.parent。$()'或用本地'$()'创建'$ wrap'吗? – 2013-03-01 09:49:56

+0

试试看父母。$('#tdDealItem')。append($ wrap);此外,iframe与父代在同一个域上的内容是? IE有一些严格的权限规则,所以你可能会遇到其中之一。 – cernunnos 2013-03-01 09:52:14

+0

是的,iframe的内容与父代在同一个域内。 – Norks 2013-03-01 10:00:13

回答

1

您是否尝试过取出“窗口”部分,只用parent.$('#tdDealItem').append($wrap);

+0

是的,我试过了,我也试过这种方式$('#tdDealItem',parent.document).append($ wrap);但无济于事 – Norks 2013-03-01 09:51:17

+1

这很好......谢谢 – Norks 2013-03-01 12:38:54

0

试试这个,

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

我已经与IE嵌入功能于Silverlight的同样的问题以Silverlight的WebBrowser控件的形式。

的修复是一个有点过奇怪,我不知道我的理解为什么,但是,以我的解决方案,并把它应用到你的,它只是把parent.jQuery到它自己的变量,即一个案例:

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

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

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

对于好奇(和完整性),我有问题/错误消息:

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

但分裂成后:

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

错误走了,我得到的权利结果。