在我的 Qt 应用程序中,我想在同一个浏览器选项卡/窗口中重复打开 URL。(以编程方式“刷新”此选项卡)
使用
QDesktopServices::openUrl(QUrl("http://www.domain.tld"));
为每个呼叫打开一个新选项卡/窗口。是否有可能在某处添加“target=”参数?
你所要求的不可能以你想象的方式去做。openUrl()使用操作系统来指定程序以打开其文档中提到的参数。
可能有一些解决方法,但它们都不能很好地工作,或者适用于所有浏览器。只是这种细粒度的控制对你来说很可能是不可能的。
如果您想控制浏览器中的选项卡,您可以找到该选项卡所代表的窗口并在打开新选项卡之前将其关闭。这个解决方案有点hacky。
另一个 hacky 解决方案是找到保存 URL 的编辑框的 HWND,并尝试使用SendMessage()
. 但是,这在 Chrome 上不起作用,因为它没有为 URL 窗口使用单独的控件。它可能适用于 Firefox 或 IE。
更好的解决方案是使用 Qt WebKit 制作您自己的 Web 浏览器。在其中呈现页面并更改查看的 url 非常容易。QWebView是一个易于使用的QtWebKit实现。
也许你会发现这很有用:
您可以打开网页并重新加载活动选项卡。
如果您提供浏览器的名称作为参数,它将找到并重新加载当前页面
https://unix.stackexchange.com/questions/37258/refresh-reload-active-browser-tab-from-command-line