7

在我的 Qt 应用程序中,我想在同一个浏览器选项卡/窗口中重复打开 URL。(以编程方式“刷新”此选项卡)

使用

QDesktopServices::openUrl(QUrl("http://www.domain.tld"));

为每个呼叫打开一个新选项卡/窗口。是否有可能在某处添加“target=”参数?

4

2 回答 2

3

你所要求的不可能以你想象的方式去做。openUrl()使用操作系统来指定程序以打开其文档中提到的参数。

可能有一些解决方法,但它们都不能很好地工作,或者适用于所有浏览器。只是这种细粒度的控制对你来说很可能是不可能的。

如果您想控制浏览器中的选项卡,您可以找到该选项卡所代表的窗口并在打开新选项卡之前将其关闭。这个解决方案有点hacky。

另一个 hacky 解决方案是找到保存 URL 的编辑框的 HWND,并尝试使用SendMessage(). 但是,这在 Chrome 上不起作用,因为它没有为 URL 窗口使用单独的控件。它可能适用于 Firefox 或 IE。

更好的解决方案是使用 Qt WebKit 制作您自己的 Web 浏览器。在其中呈现页面并更改查看的 url 非常容易。QWebView是一个易于使用的QtWebKit实现

于 2012-11-03T22:37:12.833 回答
0

也许你会发现这很有用:

您可以打开网页并重新加载活动选项卡。

如果您提供浏览器的名称作为参数,它将找到并重新加载当前页面

https://unix.stackexchange.com/questions/37258/refresh-reload-active-browser-tab-from-command-line

于 2015-03-16T22:34:26.507 回答