gpt4 book ai didi

qt - PyQt QWebkit Javascript Function.bind 不存在(ECMAScript 5 缺失函数)

转载 作者:行者123 更新时间:2023-12-04 12:59:21 26 4
gpt4 key购买 nike

Web 应用程序中的 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);
}
}
}

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

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind

知道如何说服 QtWebkit 在这里正确运行吗?


显然,Function.prototype.bind 是 ECMAScript 5 的一部分。它在 webkit 中的实现应该包含在(修复错误)中:https://bugs.webkit.org/show_bug.cgi?id=26382

也许我缺少一种启用 ECMAScript 5 的模式?


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

(Pdb) str(QtWebKit.qWebKitVersion())'534.34'

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

对应于修订版 85696。结合上述错误中的评论(“已在 r95751 中修复”),似乎我需要更新的版本,特别是比 535.5 更好的版本。现在找到哪个版本的 PyQt 使用那个...

谢谢。

最佳答案

最新版本的 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。

关于qt - PyQt QWebkit Javascript Function.bind 不存在(ECMAScript 5 缺失函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14693946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com