从iframe父

时间:2015-04-22 12:54:13

标签: javascript jquery html iframe

我有一个网站,其中包含使用iframe元素的所有类型的网站,所以我想有一个选项来禁用iframe中所有按钮元素的默认提交操作(我克服了跨源问题)。

现在,首先,我尝试添加'禁用'属于iframe内部的按钮元素并且工作正常,但我也发现它在某些网站上看起来很糟糕(css问题)所以我专注于添加一个新的点击事件处理程序,它只会返回false并阻止默认操作。我首先在实时网站(没有iframe)上尝试,从Chrome控制台运行这个:

<iframe id="iframe" src='http://somewebsite.com'></iframe>

<script>
 var element = $($('#iframe').prop('contentDocument')).find('button').get(3);
 $(element).off('click');
 $(element).bind('click', function(event) { event.stopPropagation(); return false; } );
 console.log(jQuery._data(element, 'events').click[0].handler)
 // output  function (event) { event.stopPropagation(); return false; }
</script>

这成功禁用了提交操作。但是,当我尝试使用iframe的相同方法时:

{{1}}

正如您所看到的,iframe中的DOM元素已提供事件处理程序来停止默认操作,但由于某些原因并未阻止它。是否有任何理由不能使用iframe?

0 个答案:

没有答案