0

你可能注意到我一直在问很多关于我的网络浏览器的问题,这是因为我也是这些东西的新手,问问题是我理解的方式,并且变得更好并且明显地学习。

所以,我的问题正如标题中所说,如何解决当我点击另一个链接时 url 不更新的问题,这里有一张图片来说明我的意思:

在此处输入图像描述

如您所见,我在谷歌中搜索了“测试”。现在,如果你看一下 URL 栏,上面写着google.com它还没有更新,我应该展示

https://www.google.com.au/search?q=test&oq=test&aqs=chrome.0.69i59j0l2.1134j0&sourceid=chrome&ie=UTF-8

我正在使用 Quickly 来构建我的应用程序。

这是我的浏览器源代码:

self.refreshbutton = self.builder.get_object("refreshbutton")
    self.urlentry = self.builder.get_object("urlentry")
    self.scrolledwindow = self.builder.get_object("scrolledwindow")
    self.backbutton = self.builder.get_object("backbutton")
    self.forwardbutton = self.builder.get_object("forwardbutton")

    self.webview = WebKit.WebView()

    self.scrolledwindow.add(self.webview)
    self.webview.show()

def on_refreshbutton_clicked(self, widget):
    self.webview.reload()

def on_backbutton_clicked(self, widget):
    self.webview.go_back()

def on_forwardbutton_clicked(self, widget):
    self.webview.go_forward()

def on_urlentry_activate(self, widget):
    url = widget.get_text()

    self.webview.open(url)

对为什么会发生这种情况有任何想法吗?

4

1 回答 1

0

您需要为 webview 的load_committed事件添加一个事件处理程序,然后更改urlentry文本框中的文本以反映当前 url

    ...
    self.webview = WebKit.WebView()
    self.webview.connect('load_committed', self.change_url)

    self.scrolledwindow.add(self.webview)
    self.webview.show()

def change_url(self, widget, data=None):
    self.urlentry.set_text( widget.get_main_frame().get_uri() )

...
于 2013-09-02T07:50:20.213 回答