我有一个网站,其中包含使用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?