javascript 控制 iframe 里面的 a 元素让它不跳出iframe
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 控制 iframe 里面的 a 元素让它不跳出iframe相关的知识,希望对你有一定的参考价值。
父元素 a.html 里面有<iframe src="http://www.abc.com"></iframe>
http://www.abc.com 的<head>标签有<base target="_blank" />
这样我点www.abc.com上的任何a链接都会跳出我的父元素a.html了
怎么样用javascript来控制iframe里面的a链接不跳出iframe呢?
--------------------------------------------------------
我想到的是不知道是否可行的两个办法:
1.用javascript修改<base target="_blank">为<base target="_self">
2.用javascript给iframe里面的a链接加个terget="_self"
--------------------------------------------------------------
但是代码敲了很久也不成功,谁可以实现啊,帮助一下,谢谢啦。。。
首先iframe中的页面应该与父页面是同域页面,否则跨域的话js无法控制iframe中的内容。
如果父页面与框架中的页面时同域的,可以通过改变a标签的href属性来实现:
<a href="javascript:return false;" onclick="window.open('http://zhidao.baidu.com/','_self')" target="_blank">猛戳这里</a>这样实际是把原来链接的作用取消,然后给a标签绑定js的window.open方法打开页面,target也就不起作用了。
参考技术B 该iframe起个名字,超链接的target属性指向哪个名字就ok了比如
01.html
<iframe name="ifmshowMsg"/>
超链接
<a href="01.html" target="ifmshowMsg">连接到iframe</a>
你再试试,但愿能适合你的胃口,不行再问我本回答被提问者采纳 参考技术C 什么都不写就行了
<a href="http://g.cn">google</a>,iframe里面的html这样写。
如何从 iframe 中调用 javascript 函数?
【中文标题】如何从 iframe 中调用 javascript 函数?【英文标题】:How can I call a javascript function from within iframe? 【发布时间】:2015-03-18 09:06:41 【问题描述】:我已经阅读并知道同源策略会阻止 iframe 的 DOM 访问父窗口的 DOM,反之亦然,如果在不同的域上。
但是,在这种情况下,我至少对父 DOM 也有一些控制权(它仍然在不同的域中)。我正在开发一个位于 iframe 中的网站,但也会要求用户在页面顶部添加一些 javascript。
鉴于此,我是否可以使用包含的 javascript 在父级中公开一个 javascript 函数?
【问题讨论】:
***.com/a/7479286/3556874 我用easyXDM.js跨域消息解决了这个问题 你刚刚拯救了这一天@NaeemShaikh。我会再看看window.postMessage
,这正是我所追求的。感谢您的回复 john,我将首先查看 HTML5 方法,然后如果所有其他方法都失败,请阅读 easyXDM。在必要之前,我宁愿减少对 3rd 方组件的需求(我假设是这样)。
【参考方案1】:
我很高兴地说,HTML5 似乎通过window.postMessage
解决了这个问题:
https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage
根据 Naeem 在 cmets 中发布的链接,某些浏览器可能存在一些兼容性问题,但可以克服。
【讨论】:
以上是关于javascript 控制 iframe 里面的 a 元素让它不跳出iframe的主要内容,如果未能解决你的问题,请参考以下文章
javascript怎么操作iframe页面里面的dom元素?