首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyQt QWebkit Javascript Function.bind不存在(ECMAScript 5缺少函数)

PyQt QWebkit Javascript Function.bind不存在(ECMAScript 5缺少函数)
EN

Stack Overflow用户
提问于 2013-02-04 19:22:17
回答 2查看 833关注 0票数 3

web应用程序中的Javascript运行以下循环:

代码语言:javascript
复制
    for (var name in this) {
        if(typeof(this[name]) == "function") {
            if((/^on_|^do_/).test(name)) {
        console.debug("Adding ", name, " to ", this, "(", this[name], ")");
                f = this[name].bind;
        console.debug(f);
                this[name] = this[name].bind(this);
            }
        }
    }

在Chrome24.0.1312.56下,行f = this[name].bind正确地将f设置为本机代码function.bind(),而在我的QWebKit Qt应用程序中,它将f设置为“未定义”。

Objects/Function/bind

你知道我怎么能说服QtWebkit在这里做正确的事吗?

显然,Function.prototype.bind是ECMAScript 5的一部分。

也许有一种模式可以启用我所缺少的ECMAScript 5?

显然,我正在为QtWebkit使用版本534.34:

(QtWebKit.qWebKitVersion()) '534.34‘

根据这个:https://trac.webkit.org/changeset/85696/trunk/Source/WebKit/mac/Configurations/Version.xcconfig

对应于第85696版。结合上述bug中的注释(“在r95751中修复”),我似乎需要一个更新的版本,特别是比535.5更好的版本。现在要找出PyQt的哪个版本使用这个..。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-04 20:13:55

PyQt的最新版本(4.9.6-1)似乎是针对wekbit版本534.34编译的。支持Function.prototype.bind的webkit的第一个版本是535.5。

此外,似乎PySite 1.2.2和PyQt 4.9.6-1报告webkit版本535.34,并且没有Function.prototype.bind。

票数 2
EN

Stack Overflow用户

发布于 2013-02-04 19:42:26

尝试使用以下代码,强制您使用Function.prototype.bind

代码语言:javascript
复制
this[name] = Function.prototype.bind.call(this[name], this)

在IE中,一些宿主对象在其方法(函数)上没有绑定方法.可能是有关联的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14693946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档