`
block
  • 浏览: 42500 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

webkit下取得margin-right错误的问题

    博客分类:
  • Web
阅读更多

在做一个SplitPanel的功能的时候,在IE和FF下运行正常,但是在Chrome下运行效果很诡异。

经过调试,发现是在webkit下取得dom元素margin-right的时候取值错误,google一番,找到下面几个结果:

 

  1. https://mootools.lighthouseapp.com/projects/2706/tickets/703-getcomputedstyle-and-margin-right-in-webkit
  2. https://bugs.webkit.org/show_bug.cgi?id=13343

 

看来这是webkit本身的一个bug,从07年report,到现在依然没有fix掉。

 

经过第一个链接的提示,把getStyle方法重构成如下代码:

function getStyle(element, styleName){
    var el = DomHelper.get(element);
    if (!el || !styleName) return null;
    styleName = blade.String.toCamel(styleName);
    if (styleName == "float") {
        styleName = "cssFloat";
    }
    var display, mr = false;
    try {
        if(styleName == "marginRight"){
            mr = true;
            display = el.style.display;
            el.style.display = "inline-block";
        }
        var computed = document.defaultView.getComputedStyle(el, '');
        return el.style[styleName] || computed ? computed[styleName] : null;

    } catch(e) {
        return el.style[styleName];
    } finally{
        if(mr){
            el.style.display = display;
        }
    }
}

 

 

Ok,问题暂时解决,至此结束。

分享到:
评论

相关推荐

    WebKit.NET-0.5-bin-cairo

    2. **.NET封装**: WebKit.NET提供了丰富的.NET类库,这些类对应于WebKit的原生API,如`WebKit.WebView`代表一个网页视图,`WebKit.WebContext`管理网络请求和全局设置,以及`WebKit.DOM`命名空间下的类用于操作DOM...

    ios-webkit-debug-proxy-1.9.0-win64-bin

    ios-webkit-debug-proxy-1.9.0-win64-bin

    CSS -webkit-box-orient: vertical属性编译后丢失问题详解

    后来发现代码里写的好好的,一到页面上居然没有反应,和没写一个样,f12看了下,原来是-webkit-box-orient: vertical;这个属性丢失,导致了不生效,在Styles里把这个属性加上就好了,于是断定是编译过程导致这个属性...

    qtwebkit-opensource-src-5.6.3源码,可以在windows、linnux用qt编译安装

    qtwebkit-opensource-src-5.6.3源码,可以在windows、linnux用qt编译安装

    webkit2gtk3-devel-2.32.3-2.el8.i686.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    Qtwebkit安装库适用于QT5.14版本.zip

    qtwebkit-Windows-Windows_7-Mingw73-Windows-Windows_7-X86.7z qtwebkit-Windows-Windows_10-Mingw73-Windows-Windows_10-X86_64.7z qtwebkit-Windows-Windows_10-MSVC2017-Windows-Windows_10-X86.7z qtwebkit-...

    css3弹性布局-webkit-box的用法演示

    在早期的浏览器实现中,WebKit浏览器(如Safari和Chrome)引入了一个实验性的前缀 `-webkit-box` 来支持弹性布局。这个前缀版本的弹性布局为后来的正式规范打下了基础。本文将详细讲解`-webkit-box`的用法,并通过...

    webkit2gtk3-2.32.3-2.el8.aarch64.rpm

    离线安装包,亲测可用

    WebKit.NET-0.5-Chrome的内核WebKit的NET版.zip

    WebKit.NET-0.5-Chrome的内核WebKit的NET版.zip是一个包含WebKit.NET 0.5版本的压缩包,这个项目旨在为.NET开发者提供一个基于Chrome浏览器内核(WebKit)的.NET接口。WebKit是一个开源的网页渲染引擎,广泛应用于...

    qt5-qtwebkit-5.9.1-1.el7.x86_64.rpm

    标题中的"qt5-qtwebkit-5.9.1-1.el7.x86_64.rpm"是一个基于RPM(Red Hat Package Manager)格式的软件包,它包含了Qt5框架下的QtWebKit模块。QtWebKit是Qt库的一个部分,用于在Qt应用程序中渲染Web内容,支持HTML5、...

    node-webkit-v0.9.2-linux-x64.tar.gz

    标题中的"node-webkit-v0.9.2-linux-x64.tar.gz"是一个特定版本的Node.js运行时环境,称为Node-Webkit,用于在Linux操作系统(x64架构)上运行。Node-Webkit是Node.js和Chromium浏览器的结合体,允许开发者使用...

    qt5-qtwebkit-5.9.1-1.el7.64_32

    以下是错误原文 Error: Package: teamviewer-13.0.6634-0.x86_64 (/teamviewer.x86_64) Requires: libQt5WebKitWidgets.so.5()(64bit) >= 5.5 You could try using --skip-broken to work around the problem You ...

    WebKit.NET-0.5-pre1-bin-cairo.zip

    开发人员在使用WebKit.NET时,需要注意兼容性问题,因为它依赖于特定版本的WebKit和.NET Framework。此外,由于这是一个预发布版本,可能存在一些未解决的bug或功能不完整的情况,开发者需要定期检查更新以获取修复...

    WebKit.NET-0.5-bin-cairo_2021.07.26_最新版本.zip

    - 调试:WebKit.NET提供了调试工具,帮助开发者定位和解决问题,如JavaScript错误、页面加载问题等。 总之,WebKit.NET结合了WebKit的强大功能和.NET的易用性,为开发者提供了一种高效且灵活的方式来构建包含复杂...

    webkit2gtk3-jsc-2.32.3-2.el8.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    9段css代码

    -webkit-border-top-rightright-radius: 3px; -webkit-border-bottom-rightright-radius: 6px; -webkit-border-bottom-left-radius: 10px; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 3px...

    java集成webkit浏览器

    Java集成WebKit浏览器是一种技术实践,它允许Java应用程序利用WebKit渲染引擎来展示网页内容。WebKit是一个开源的Web浏览器引擎,被广泛应用于Safari、Chrome等知名浏览器。在Java中集成WebKit,开发者可以创建具有...

    qt5-qtwebkit-5.9.1-2.el7.x86_64.rpm

    qt5-qtwebkit-5.9.1-2.el7.x86_64.rpm插件,完美解决Teamviewer Linux 报错

Global site tag (gtag.js) - Google Analytics