在 Iframe 主体上设置焦点和模糊事件不适用于 Firefox

Setting focus and blur events on Iframe body not working with firefox

我创建了一个可编辑的 iFrame 为:

<iframe frameborder="0" id="editor"></iframe>

<script type="text/JavaScript">
    document.getElementById('editor').contentWindow.document.designMode="on";                                       
    document.getElementById('editor').contentWindow.document.close();

    $("#editor").contents().find("body").blur(function(){ // Blur functions });

    $("#editor").contents().find("body").focus(function(){// focus functions });

</script>

焦点和模糊事件在 chrome 中触发,但不适用于 firefox。

解析为:

<iframe frameborder="0" id="editor"></iframe>

<script type="text/JavaScript">
    document.getElementById('editor').contentWindow.document.designMode="on";                                       
    document.getElementById('editor').contentWindow.document.close();

if(navigator.userAgent.indexOf("Firefox") != -1){
    $("#editor").contents().bind('blur', function(){ // Blur functions });
    $("#editor").contents().bind('focus', function(){ // focus functions });
}else{
    $("#editor").contents().find("body").blur(function(){ // Blur functions });
    $("#editor").contents().find("body").focus(function(){ // focus functions });
}
</script>

对于 firefox,它适用于在 contents() 上设置的 focus/blur 而不是 body。