获取子窗口中使用jQuery.data()设置的参数

http://hyj1254.iteye.com/blog/643035 

假设在iframe子窗口中设置了$('#mydata').data('key','hello world'); 
那在包含iframe的父页面中如何获取它呢?直接使用$('#mydata').data('key')是不行的。 
    原因是:data()将数据存入了iframe页面的jQuery对象中,与父页面的jQuery对象无关。父页面中的$即jQuery对象,直接使用它显然无法获取。 
    解决办法是:设法获取iframe页面中的jQuery对象,替换父页面中的jQuery。 

Html代码    收藏代码
  1. 设有父页面:  
  2. <body>  
  3. <iframe id="myframeId" name="myframe" src="test.html"></iframe>  
  4. </body>  
  5. 子页面中设置了:  
  6. $('#mydata').data('key','hello world');  


则获取方式如下: 

Js代码    收藏代码
  1. var mydata,iJquery;  
  2. if(window.navigator.userAgent.indexOf("Firefox")>=1){  
  3.     iJquery=window.myframe.jQuery;  
  4.     mydata=(document.getElementById('myframeId')).contentDocument.getElementById('mydata');  
  5. }else if(window.navigator.userAgent.indexOf("MSIE")>=1){  
  6.          iJquery=(document.frames('myframe')).jQuery;  
  7.          mydata=(document.frames('myframe')).document.getElementById('mydata');  
  8. }  
  9. alert(iJquery.data(mydata,'key'));  


=================== 
近来突然想到1种简便得多的方式: 

Java代码    收藏代码
    1. var iJquery=window.myframe.jQuery;  
    2. var $mydata=iJquery('#mydata');  
    3. alert(#mydata.data('key'));  

你可能感兴趣的:(jquery)