在JavaFX WebEngine中禁用图像加载

时间:2014-05-28 13:46:51

标签: java javafx javafx-webengine

我到处搜索但发现没有办法禁用Java WebEngine加载图像。

研究完成:

我找到了一些想法,例如使用URL.setURLStreamHandlerFactory()来使用我自己的URLStreamHandler,然后分析该网址,只返回URLConnection s表示未结束的网址。 jpg .png等BUt有很多问题:如果图像网址是动态图像,例如验证码,则有时图像网址不会以.jpg结尾。那么如何禁用WebEngine的自动图像加载?

1 个答案:

答案 0 :(得分:2)

我不是JSoup专家,但做这样的事情应该很容易。

import java.net.URL;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class NoImg extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        WebView wv = new WebView();
        WebEngine we = wv.getEngine();
        Document doc = Jsoup.parse(new URL("http://www.google.com"), 5000);
        doc.select("img").stream().forEach((element) -> {
            element.remove();
        });
        we.loadContent(doc.outerHtml());
        Scene scene = new Scene(wv, 300, 250);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

似乎工作正常。您需要jsoup.jar