我有一个<iframe />
整个div
作为父级。 iframe来自不同的域名。当你点击iframe时,你如何调整它的大小(在我的情况下添加类)父div?并在单击iframe的关闭按钮时将其调整大小?
如果来自iframe
的按钮调整大小,但显然无法在iframe中找到div,我更喜欢,所以我必须在iframe外进行。
答案 0 :(得分:2)
我遇到了同样的问题并编写了一个jquery插件。 https://github.com/SammySoft/iframeActivationListener
见例子:
http://jsfiddle.net/56g7uLub/3/
使用方法:
$(document).ready(function ()
{
$('iframe').iframeActivationListener();
$('iframe').on("activate", function(ev) {
$(ev.target).addClass("big");
});
});
此插件不使用重叠div 它检查鼠标是否处于非活动状态iframe并开始观察文档的activeElement。 当它更改为另一个iframe时,自定义事件&#34;激活&#34;将被提出。
这是我发现的最佳解决方案。
答案 1 :(得分:0)
试试这个:
document.getElementById("myIFrame").onclick = function(){
document.getElementById("myDiv").className = ""; //New Class Name
};
答案 2 :(得分:0)
您必须创建某种叠加层才能检测iframe的初始焦点事件。如果您根据课程显示,关闭按钮也可以是您网站的一部分。
http://jsfiddle.net/cxtgn72g/4/
HTML
<div id="iframe">
<div id="overlay"></div>
<div id="close">X</div>
<iframe src="//www.youtube.com/embed/6PRq7CmiWhM?list=PLIOa6mDiSeismsV_7YFti-5XOGRzmofSZ"></iframe>
</div>
JS - 需要jQuery
$("#overlay").click(function() {
$("#iframe").addClass("big");
});
$("#close").click(function() {
$("#iframe").removeClass("big");
});
CSS
#iframe {
width : 500px;
height : 300px;
position : relative;
}
#iframe.big {
width : 600px;
height : 400px;
}
iframe {
width : 100%;
height : 100%;
border : none;
}
#overlay {
position : absolute;
left : 0;
top : 0;
width : 100%;
height : 100%;
}
#close {
display : none;
}
.big #close {
cursor : pointer;
display : block;
position : absolute;
right : 10px;
top : 10px;
content : "X";
background : red;
color : white;
border-radius : 25%;
padding : 8px;
}
.big #overlay {
display : none;
}
答案 3 :(得分:-1)
使用
获取iframe中的值jquery的
$('#yourIframe').contents().find('#yourDiv').html();
//you might have to use .val(), depending on browser or context
或javascript