http://hyj1254.iteye.com/blog/643035
假设在iframe子窗口中设置了$('#mydata').data('key','hello world');
那在包含iframe的父页面中如何获取它呢?直接使用$('#mydata').data('key')是不行的。
原因是:data()将数据存入了iframe页面的jQuery对象中,与父页面的jQuery对象无关。父页面中的$即jQuery对象,直接使用它显然无法获取。
解决办法是:设法获取iframe页面中的jQuery对象,替换父页面中的jQuery。
- 设有父页面:
- <body>
- <iframe id="myframeId" name="myframe" src="test.html"></iframe>
- </body>
- 子页面中设置了:
- $('#mydata').data('key','hello world');
则获取方式如下:
- var mydata,iJquery;
- if(window.navigator.userAgent.indexOf("Firefox")>=1){
- iJquery=window.myframe.jQuery;
- mydata=(document.getElementById('myframeId')).contentDocument.getElementById('mydata');
- }else if(window.navigator.userAgent.indexOf("MSIE")>=1){
- iJquery=(document.frames('myframe')).jQuery;
- mydata=(document.frames('myframe')).document.getElementById('mydata');
- }
- alert(iJquery.data(mydata,'key'));
===================
近来突然想到1种简便得多的方式:
- var iJquery=window.myframe.jQuery;
- var $mydata=iJquery('#mydata');
- alert(#mydata.data('key'));