jQuery iframe操作父类元素

参考:JQueryiframe页面操作父页面中的元素与方法

里面提到:

2)在iframe中调用父页面中定义的方法和变量:
parent.method

我采用iframe的父页面里面定义方法,在iframe中调用父页面的方法:

index.html

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#" xmlns:wb="http://open.weibo.com/wb">
 3 <head >
 4     <title>index.html</title>
 5     <meta name="description" content="Hello world">
 6     <meta property="og:type"               content="article" />
 7     <meta property="og:image"              content="20151112160752.png" />
 8     <!-- Magnific Popup core CSS file -->
 9     <link rel="stylesheet" href="magnific-popup/magnific-popup.css">
10
11     <!-- jQuery 1.7.2+ or Zepto.js 1.0+ -->
12     <script src="http://ajax.useso.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
13
14     <!-- Magnific Popup core JS file -->
15     <script src="magnific-popup/jquery.magnific-popup.js"></script>
16     <style type="text/css">
17         .mfp-iframe-scaler iframe{
18             background: #FFFFFF;
19         }
20     </style>
21     <script  type="text/javascript">
22         //iframe change Image and title
23         function iframeChange(title,image){
24             $(document).attr("title",title);
25             $("meta[property=‘og:image‘]").attr("content",image);
26         }
27         var pageTitle = "";
28         //使用jquery.magnific-popup.js
29         $(function(){
30             pageTitle = $(document).attr("title");
31
32              $(‘.iframe-popup-link‘).magnificPopup({
33                 type: ‘iframe‘,
34                 alignTop: true,
35                 overflowY: ‘scroll‘, // as we know that popup content is tall we set scroll overflow by default to avoid jump
36                 callbacks: {
37                     close: function() {
38                         $(document).attr("title",pageTitle);
39                     }
40                 }
41             });
42
43         });
44
45     </script>
46 </head>
47 <body>
48     <a data-mfp-src="test.html" href="javascript:void(0);" class="iframe-popup-link white-popup">Test</a>
49 </body>
50 </html>

test.html

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml" >
 3 <head >
 4     <title>Home</title>
 5 </head>
 6 <body>
 7 <h1>Test Page</h1>
 8 <script type="text/javascript">
 9 parent.iframeChange("Hellworld","http://localhost/123456.jpg");
10 </script>
11 </body>
12 </html>

为了避免出现"Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null""的问题

请把测试的网页放在apache或者nginx服务器的目录下

-------------------------------------------------调皮的分割线 T_T ------------------------------------------------------------------------------------

项目中是使用jquery magnificPopup 弹出iframe的形式显示产品内容,百度分享的按钮是在iframe中,facebook分享,没有图片和说明,只有域名和标题,测试之后,发现facebook 分享读取的资料还是来自iframe的父页面的meta descritption,og:image两个元素,iframe里面的内容是变化的,所以只能iframe在显示时操作父页面的title,og:image两个元素

时间: 2024-11-08 02:25:42

jQuery iframe操作父类元素的相关文章

jquery:iframe里面的元素怎样触发父窗口元素的事件?

例如父窗口定义了一个事件. top: $(dom1).bind('topEvent', function(){}); 那么iframe里面的元素怎样触发父窗口dom1的事件呢?这样吗? $(dom1, parent.document).trigger('topEvent'); 看似正确,实则误导人. 因为父窗口的jquery对象与iframe里面的jquery对象实际为两个对象(function),iframe里面的jquery并不会触发另一个jquery对象定义的事件.除非你在iframe这样

IE7中使用Jquery动态操作name问题

问题:IE7中无法使用Jquery动态操作页面元素的name属性. 在项目中有出现问题,某些客户的机器偶尔会有,后台取不到前台的数据值. 然开发和测试环境总是不能重现问题.坑爹之处就在于此,不能重现就不能调试,就不能知道改了后还会不会有这样的问题. 想想可能与客户环境唯一不同就只有可能是js缓存问题了,然后把所有的js文件引用的地方都加上一个当前时间参数,然问题依然存在. 本来规定的版本就是IE8,所以也没有想过会有版本兼容问题,在说了咱用的是jquery,jqeruy的出现不就是号称为了解决浏

jquery iframe取得元素与自适应高度

总结一下iframe在jquery中怎么操作的,下面我来给各位介绍jquery 获取iframe子/父页面的元素及iframe在jquery高度自适应实现方法,各位朋友可参考. jquery方法: 在iframe子页面获取父页面元素 $('#objId', parent.document); 在iframe子页面获取父页面元素 代码如下:  代码如下 复制代码 $('#objId', parent.document); // 搞定... 在父页面 获取iframe子页面的元素代码如下:  代码如

JQuery调用iframe父页面元素与方法

JQuery操作iframe父页面与子页面的元素与方法 下面简单使用Jquery来操作iframe的一些记录,这个使用纯JS也可以实现. 第一.在iframe中查找父页面元素的方法: $('#id', window.parent.document) 第二.在父页面中获取iframe中的元素方法: $(this).contents().find("#suggestBox") 第三.在iframe中调用父页面中定义的方法和变量: parent.method parent.value 第四.

【转】jquery iframe取得元素与自适应高度

今天没事来总结一下iframe在jquery中怎么操作的,下面我来给各位介绍jquery 获取iframe子/父页面的元素及iframe在jquery高度自适应实现方法,各位朋友可参考. jquery方法: 在iframe子页面获取父页面元素 代码如下: 1 $('#objId', parent.document); 在父页面 获取iframe子页面的元素代码如下: 1 $("#objid",document.frames('iframename').document) 2 3 $(d

jQuery碎语(1) 基础、选择要操作的元素、处理DOM元素

1.基础 jquery对象集: $():jquery对象集合 获取jquery对象集中的元素: 使用索引获取包装器中的javascript元素:var temp = $('img[alt]')[0] 使用jquery的get方法获取jquery对象集中的javascript元素:var temp = $('img[alt]').get(0) 使用jquery的eq方法获取jquery对象集中的jquery对象元素: $('img[alt]').eq(0) $('img[alt]').first(

web进阶之jQuery操作DOM元素&amp;&amp;MySQL记录操作&amp;&amp;PHP面向对象学习笔记

hi 保持学习数量和质量 1.jQuery操作DOM元素 ----使用attr()方法控制元素的属性 attr()方法的作用是设置或者返回元素的属性,其中attr(属性名)格式是获取元素属性名的值,attr(属性名,属性值)格式则是设置元素属性名的值. 控制就是获取以及设置 <h3>attr()方法设置元素属性</h3> <a href="http://127.0.0.1" id="a1">点我就变</a> <d

Java Selenium (十二) 操作弹出窗口 &amp; 智能等待页面加载完成 &amp; 处理 Iframe 中的元素

一.操作弹出窗口   原理 在代码里, 通过 Set<String> allWindowsId = driver.getWindowHandles(); 来获取到所有弹出浏览器的句柄, 然后遍历, 使用swithcto.window(newwindow_handle)方法. 就可以定位到新的窗口. 测试页面的HTML <html> <head> <title>常见web ui元素操作, 及API使用</title> <script type

Iframe父子间元素操作

1.在父页面 获取iframe子页面的元素 (在同域的情况下 且在http://下测试,且最好在iframe onload加载完毕后 dosomething...) js写法 a.通过contentWindow获取 也有用contentDocument 获取的 但是contentWindow 兼容各个浏览器,可取得子窗口的 window 对象.contentDocument Firefox 支持,> ie8 的ie支持.可取得子窗口的 document 对象. 获取方法 [html] view