2017-09-27 34 views
15

जो मैं लागू करने की कोशिश कर रहा हूं वह अनिवार्य रूप से ब्राउज़र का रद्द बटन है लेकिन जावाएफएक्स के वेबव्यू का उपयोग करना है। यह कोड मेरे पास अब तक है:आप वेब साइट लोड करने वाले वेबव्यू को कैसे रद्द करते हैं?

Worker<Void> loadWorker = webView.getEngine().getLoadWorker(); 
if (loadWorker != null) { 
    Platform.runLater(() -> loadWorker.cancel()); 
} 

लेकिन यह कभी-कभी काम करता है और कभी-कभी नहीं करता है।

पृष्ठ लोड करने के वेबव्यू/वेबेंगिन कार्य को रद्द करने का सही तरीका क्या है?

उत्तर

3

webEngine कार्य रद्द करने के बाद, आप webEnginenull के सामग्री स्थापित करने के साथ की कोशिश कर सकते हैं:

webView.getEngine().load(null); 
3

WebEngine राज्यों में तालिका जावास्क्रिप्ट यूजर इंटरफेस के तरीकों और उनकी संगत WebEngine साथ गुण कॉलबैक।

कहाँ window.close()WebEngine की onVisibilityChanged कॉलबैक से मेल खाती है।


एक त्वरित तरीका आज़माने के लिए, उस स्थिति में, हो सकता है:

webEngine.getOnVisibilityChanged().handle(closeWindowEvent); //event definition below 

एक

webEngine.executeScript("window.close()"); 

एक और तरीका है जिसमें आप यकीन है कि खिड़की बनाने के बाद बंद है एक घटना को परिभाषित करना है जिसे WebView's EventDispatcher द्वारा प्रेषित किया जा सकता है वर्तमान नोड

// Here the event to be dispatched for closing the window shall be 
WebEvent<Boolean> closeWindowEvent = new WebEvent<>(webEngine, VISIBILITY_CHANGED, Boolean.FALSE); 

webView.getEventDispatcher().dispatchEvent(closeWindowEvent, null); // no further events 

केवल वेब पेज लोड हो रहा है रद्द करने का प्रयास के मामले में, आप क्या करना executeScript का उपयोग कर सकते:

webEngine.executeScript("window.stop()"); 
+0

मैं है मैं एक विंडो बंद करने की कोशिश नहीं कर रहा हूं, बस एक वेब पेज लोडिंग रद्द कर रहा हूं। – Pablo

+0

@ पाब्लो 'window.stop()' उस मामले में आपकी मदद करेगा ...? – nullpointer

0
webView.getEngine().getLoadWorker().cancel() 

अपने लड़के

+3

क्या यह वही नहीं है जैसा कि पहले से ही प्रश्न में साझा किया गया है? – nullpointer

संबंधित मुद्दे