windowStorage在window对象上设置为NULL(qtwebkit 2.3.5)

时间:2017-01-23 10:31:00

标签: local-storage qtwebkit

所以,我工作的公司正在开发一个使用Qtwebkit 2.3.5作为其前端解决方案的机顶盒。

我需要尝试让第三方VOD与系统一起工作,但我在第一步就遇到了问题。

VOD平台(我无法访问其源代码)使用localStorage来保留一些参数,显然Qtwebkit 2.3.5没有实现它。

我的第一个想法是使用localStorage Polyfill,但在尝试了几个并且无处可去后我开始调查。

默认情况下,窗口全局对象中的localStorage属性设置为null,系统不允许我更改它。

这是我尝试的代码:

window.testStorage = "TEST_st";
console.log(window.localStorage);
console.log(window.localStorage = "TEST");
console.log(window.localStorage);
console.log(window.testStorage);

查看控制台我收到此日志:

空 测试 空值 TEST_st

因此,我可以向testStorage显示的窗口对象添加属性,但我无法更改localStorage,我需要能够。

有谁知道为什么会这样?

而且,我该如何解决?我能修改localStorage属性吗?

甚至将它映射到sessionStorage(这个已经实现)将在这一点上帮助我。

非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

所以,只是回答我自己的问题,也许可以帮助别人。

window.localStorage功能在QtWebkit 2.3.5上实现,但默认情况下已禁用。

你必须致电:

QWebSettings::globalSettings()->enablePersistentStorage(); 

在创建QWebPage或QWebView实例之前。

重新编译并重新启动。

之后一切正常。