我有这个qml文件:
WebEngineView {
id: webView
objectName: "webView"
url: current_url
anchors.fill: parent
WebEngineScript {
id: myscript
injectionPoint: WebEngineScript.DocumentCreation
sourceUrl: "myscript.js"
worldId: WebEngineScript.MainWorld
}
WebEngineScript {
id: qwebchannel
injectionPoint: WebEngineScript.DocumentCreation
sourceUrl: "qwebchannel.js"
worldId: WebEngineScript.MainWorld
}
userScripts: [ myscript, qwebchannel ]
}
和这个javascript文件' myscript.js':
var socket = new WebSocket("ws://localhost:12345");
socket.onclose = function()
{
console.error("web channel closed");
};
socket.onerror = function(error)
{
console.error("web channel error: " + error);
};
socket.onopen = function()
{
window.channel = new QWebChannel(socket, function(channel) {
window.custom_obj = channel.objects.custom_obj;
console.log("custom_obj loaded");
});
};
WebEngineView中加载的页面是一个html文件,我想访问window.custom_obj变量。
问题是页面加载太快而且变量还没有存在。
有没有办法延迟加载页面?
我的目标是确保在页面开始加载时可以访问window.custom_obj。