javascript - Python网络浏览器: Disable Javascript?

标签 javascript python webkit pygtk

这是一个简单的 Python 网络浏览器。我想禁用其中的 JavaScript。

我在网上找到了代码。我不确定如何禁用 JavaScript。

#!/usr/bin/env python
import gtk, webkit

#WOW
class Doge():

    def __init__(self):
        # Create window
        self.much_window = gtk.Window()
        #self.much_window.set_icon_from_file('doge.png')
        self.much_window.connect('destroy', lambda w: gtk.main_quit())
        self.much_window.set_default_size(1000, 700)

        # Create navigation bar
        self.so_navigation = gtk.HBox()

        self.many_back = gtk.ToolButton(gtk.STOCK_GO_BACK)
        self.such_forward = gtk.ToolButton(gtk.STOCK_GO_FORWARD)
        self.very_refresh = gtk.ToolButton(gtk.STOCK_REFRESH)
        self.wow_address_bar = gtk.Entry()

        self.many_back.connect('clicked', self.go_back)
        self.such_forward.connect('clicked', self.go_forward)
        self.very_refresh.connect('clicked', self.refresh_page)
        self.wow_address_bar.connect('activate', self.load_page)

        self.so_navigation.pack_start(self.many_back, False)
        self.so_navigation.pack_start(self.such_forward, False)
        self.so_navigation.pack_start(self.very_refresh, False)
        self.so_navigation.pack_start(self.wow_address_bar)

        # Create view for webpage
        self.very_view = gtk.ScrolledWindow()
        self.such_webview = webkit.WebView()
        self.such_webview.open('http://www.google.com/')
        self.such_webview.connect('title-changed', self.change_title)
        self.such_webview.connect('load-committed', self.change_url)
        self.very_view.add(self.such_webview)

        # Add everything and initialize
        self.wow_container = gtk.VBox()
        self.wow_container.pack_start(self.so_navigation, False)
        self.wow_container.pack_start(self.very_view)

        self.much_window.add(self.wow_container)
        self.much_window.show_all()
        gtk.main()

    def load_page(self, widget):
        so_add = self.wow_address_bar.get_text()
        if so_add.startswith('http://') or so_add.startswith('https://'):
            self.such_webview.open(so_add)
        else:
            so_add = 'http://' + so_add
            self.wow_address_bar.set_text(so_add)
            self.such_webview.open(so_add)

    def change_title(self, widget, frame, title):
        self.much_window.set_title('Wow So ' + title)

    def change_url(self, widget, frame):
        uri = frame.get_uri()
        self.wow_address_bar.set_text(uri)

    def go_back(self, widget):
        self.such_webview.go_back()

    def go_forward(self, widget):
        self.such_webview.go_forward()

    def refresh_page(self, widget):
        self.such_webview.reload()

wow = Doge()

最佳答案

您应该创建 WebKit Settings 对象并为其设置相应的属性,如下所示:

    self.settings = webkit.WebSettings()

    #This one is for WebKit 1.0
    self.settings.set_property('enable-scripts', False)

    #This one is for WebKit 2.0   
    #self.settings.set_property('enable-javascript', False);

    self.such_webview = webkit.WebView()
    self.such_webview.set_settings(self.settings);

关于javascript - Python网络浏览器: Disable Javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42174933/

相关文章:

javascript - 我如何检查一个对象是否未定义(javascript)?

python - 找到加到某个值的数字对?

python - 具有连接信息的 VTK 着色管过滤器

javascript - 视频循环自动播放不适用于 Chrome/safari(webkit 错误)

cocoa - 通过 stringByEvaluatingJavaScriptFromString 将文本从文件传递到 webview :

javascript - 如何通过 Javascript 加速 HTML 操作,和/或提高动画的渲染速度?

javascript - Bing map 的 Chutzpah CDN 问题

javascript - 我无法显示来自本地 API 的数据

javascript - 如何重构多个 if else 语句

python - "Deep return"一路回到第一次函数调用