【发布时间】:2011-09-06 06:13:34
【问题描述】:
我在同一个域的 html 页面中有两个 iframe
<body>
<table border="1" width="100%" height="100%">
<tr>
<th><iframe class="isiframe" width="100%" height="100%" src="/example"></iframe></th>
<th><iframe class="isiframe" width="100%" height="100%" src="/example"></iframe></th>
</tr>
</table>
</body>
我已经为 iframe 内网页中的所有 a 标签提供了点击事件
$('a').bind('click', function(e){
var path = $(this).getPath();
var ahash={
'path':path
};
if (getFrameElement())
window.parent.document.Aaddevent(e, ahash);
});
点击事件中的“路径”给出了被点击的标签的路径(例如html > body > div#bar > ul#abc.def.ghi > li#foo)。 getFrameElement() 返回被点击的帧。现在我想做的是使用这个路径并在其他 iframe 中触发点击事件
我已经定义了 sendevent 函数,另一个 iframe 从中获取父 iframe 的事件并触发与父 iframe 相同的事件并进行同步。
document.sendevent=function(e, ahash){
var iframes= parent.document.getElementsByTagName('iframe');
for (var i= iframes.length; i--;) {
var iframe= iframes[i];
if(iframe){
$(ahash.path).trigger('click');
}
}
};
这就是我想要做的并使 iframe 工作的方式,遵循父 iframe 被点击元素的路径,然后触发 click 事件以使其他 iframe 使用该路径与父 iframe 同步
点击事件没有在 sendevent 函数内触发,但是当我在 sendevent 函数内执行 console.log(ahash .path) 时,我得到了父 iframe 点击元素的路径。我怎样才能使这种方法起作用或类似的东西。请建议我一些解决方案如何做到这一点。
【问题讨论】:
标签: javascript jquery iframe click