Javascript iframe周围的jQuery UI对话框;性能问题?

Javascript iframe周围的jQuery UI对话框;性能问题?,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我正在围绕iframe元素创建jqueryui对话框,这样做的性能会受到严重影响。当您将对话框移动过快,导致鼠标滑过iframe元素时,会出现此问题,整个页面将暂停片刻,并导致显著的速度减慢。我已经阅读了有关iframe捕获鼠标事件的信息,这导致了速度减慢,但我似乎无法确定确切的问题。我试图捕获mousemove和mouseover并阻止默认行为,但没有运气 任何能让性能回到正轨的建议都将不胜感激! 还请注意,我使用的是Webkit,并不关心与其他浏览器的兼容性。我自己也遇到了这些性能问题。拖动

我正在围绕iframe元素创建jqueryui对话框,这样做的性能会受到严重影响。当您将对话框移动过快,导致鼠标滑过iframe元素时,会出现此问题,整个页面将暂停片刻,并导致显著的速度减慢。我已经阅读了有关iframe捕获鼠标事件的信息,这导致了速度减慢,但我似乎无法确定确切的问题。我试图捕获mousemove和mouseover并阻止默认行为,但没有运气

任何能让性能回到正轨的建议都将不胜感激!
还请注意,我使用的是Webkit,并不关心与其他浏览器的兼容性。

我自己也遇到了这些性能问题。拖动或调整对话框大小时,鼠标通常会在iframe上移动。正如您所提到的,这些事件由iframe捕获,从而导致滞后行为

jQuery DragTable提供了一个“”选项,在拖动时将透明div放置在iFrame上。对话框插件不提供此修复程序。查看iframefix的版本,我能够调整它以解决对话框的性能问题。添加类似于您的对话框的拖动和调整开始/停止选项应该可以做到:

$(selector).dialog({
  dragStart: function (event, ui) {
      $('iframe', this).each(function() {
          $('<div class="ui-draggable-iframeFix" style="background: #FFF;"></div>')
          .css({
              width: '100%', height: '100%',
              position: 'absolute', opacity: '1', zIndex: 1000, overflowX: 'hidden'
          })
          .css($(this).position())
          .appendTo($(this).offsetParent());
      });
  },
  dragStop: function (event, ui) {
      $("div.ui-draggable-iframeFix").each(function() {
        this.parentNode.removeChild(this); }); //Remove frame helpers
      }
});
$(选择器).对话框({
dragStart:函数(事件、ui){
$('iframe',this).each(函数(){
$('')
.css({
宽度:“100%”,高度:“100%”,
位置:“绝对”,不透明度:“1”,zIndex:1000,溢出x:“隐藏”
})
.css($(this).position())
.appendTo($(this.offsetParent());
});
},
dragStop:功能(事件、用户界面){
$(“div.ui-draggable-iframeFix”)。每个(函数(){
this.parentNode.removeChild(this);});//删除框架帮助程序
}
});
我修改了代码,使透明div可以随着对话框调整大小,并相对于对话框容器和窗口进行定位。这可能需要更多的调整。理想情况下,您只需扩展对话框插件来处理这些选项。我很快就会这么做的


jQuery论坛为我提供了指向可拖动插件修复程序的指针。

我不得不使用resizeStart和resizeStop,但现在它起作用了:我可以顺利地调整模式对话框的大小。谢谢您,您的解决方案非常优雅,工作非常完美。非常好的帮助和非常好的解决方案McAfield。由于iframe,我真的看到了性能和紧张的问题+1我的案例我第一次尝试了您的解决方案,但您提供的链接也帮助了我,问题通过一个简单的-iframeFix:true解决了