Запретить переход в на другой url на WebKit2
import gi
gi.require_version('WebKit2', '4.0')
gi.require_version('Gtk', '3.0')
from gi.repository import WebKit2, Gtk
Gtk.Settings.get_default().props.gtk_touchscreen_mode = True
window = Gtk.Window(title="View", resizable=False, decorated=False )
window.connect("delete-event", Gtk.main_quit)
settings = WebKit2.Settings(allow_file_access_from_file_urls=True, enable_back_forward_navigation_gestures=True)
webview = WebKit2.WebView.new_with_settings(settings)
def on_decide_policy(web_view, decision, decision_type):
if decision_type == WebKit2.PolicyDecisionType.NAVIGATION_ACTION:
action = decision.get_navigation_action()
request = action.get_request()
if request.get_uri().startswith("http://localhost/"):
return False
else:
#request.set_uri("http://localhost/")
return True
print (decision)
def on_context_menu(web_view, context_menu, event, hit_test_result):
return True
webview.connect("context-menu", on_context_menu)
webview.connect("decide-policy", on_decide_policy)
webview.load_uri("http://localhost/")
window.add(webview)
window.maximize()
window.show_all()
Gtk.main()
Переходы в decide-policy видны, но не получается запретить переход через return True.
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Получилось решить остановив загрузку
else:
web_view.stop_loading()
return True
Но что будет если страница не загрузилась до конца при переходе на новую - получу недогруженный документ на экране?