如何修复javascript中chrome上的调试模式错误?

如何修复javascript中chrome上的调试模式错误?,javascript,css,Javascript,Css,我的问题是这样的: 我的网页中有一个ace编辑器,我需要更改他的大小,代码如下: var x = event.pageX; pageParams = document.body.getBoundingClientRect(); ace = document.getElementById("fileInfo"); if (x > pageParams.width

我的问题是这样的:

我的网页中有一个ace编辑器,我需要更改他的大小,代码如下:

                var x = event.pageX;
                pageParams = document.body.getBoundingClientRect();
                ace = document.getElementById("fileInfo");

                if (x > pageParams.width * 0.3) {
                    x = parseInt(pageParams.width * 0.3);
                }

                if(x < pageParams.width * 0.2) {
                    x = pageParams.width * 0.2;
                }

                $element.css({
                    left: x + 'px'
                });

                $($attrs.resizerLeft).css({
                    width: x + 'px'
                });


                var w = topContent.clientWidth;
                var oldX = $($attrs.resizerRight).css('left');
                if(oldX.indexOf('px') > -1) {
                    oldX = parseFloat(oldX.substring(0, oldX.length - 2));
                } else {
                    oldX = parseFloat(oldX);
                }

                $($attrs.resizerRight).css({
                    left: (x + parseInt($attrs.resizerWidth)) + 'px'
            //      width: w + (oldX - x) + 'px'
                });

                $('#fileInfo').css({
                    width: ace.clientWidth - (oldX - x) + 'px' 
                })

                editor.resize();
var x=event.pageX;
pageParams=document.body.getBoundingClientRect();
ace=document.getElementById(“fileInfo”);
如果(x>pageParams.width*0.3){
x=parseInt(pageParams.width*0.3);
}
如果(x-1){
oldX=parseFloat(oldX.substring(0,oldX.length-2));
}否则{
oldX=parseFloat(oldX);
}
$($attrs.resizerRight).css({
左:(x+parseInt($attrs.resizerWidth))+'px'
//宽度:w+(oldX-x)+“px”
});
$('#fileInfo').css({
宽度:ace.clientWidth-(oldX-x)+“px”
})
editor.resize();
结尾的4行对我来说很重要 他们说,找到fileInfo id(我的ace编辑器) 然后将其宽度设置为(ace编辑器先前的宽度+光标的旧位置-光标的新位置+‘px’(对于我处理像素) 最后一行实际上是允许调整ace编辑器大小的行

我相信,我的逻辑没有错误,但我的问题来了:

一旦我在google chrome和mozilla firefox上运行了这段代码,我的代码就会中断,并且总是会缩小编辑器的宽度,但是,当我进入浏览器的调试模式(通过F12)并在同一段代码上创建一个中断点时,代码就会正常工作

我不敢相信,我也无法解释。。。 有了调试模式和断点(不是没有断点)它就可以工作,但没有断点和/或调试模式它就不能工作

我希望我说清楚了,你能帮助我

Thx

加上:


我发现,一旦我不在调试模式下,oldX总是大于X变量,但一旦我进入带有中断的调试模式,它就应该是,有时更大,有时更小…

这里有点猜测,但是

Dev tools debug mode my有几种效果,其中之一是向环境中添加一些异步特性。(基本上,在不启用调试模式的情况下执行调整大小时,可能不会应用css)。我会尝试为调整大小调用添加一些超时。尝试此操作,看看是否解决了问题:

setTimeout(function(){
    editor.resize();
}, 20);

我只是试过了,但事实并非如此……再说一次,如果有断点,那么它就可以工作,否则我就不行了