2011-04-26 16 views
5

मैं वेबपृष्ठ देखने के लिए PyQt4 और QWebView विजेट का उपयोग कर रहा हूं, लेकिन ऐसा लगता है कि मेरे जावास्क्रिप्ट में कोई समस्या है। अन्य ब्राउज़र ठीक चलते प्रतीत होते हैं, इसलिए मैं जानना चाहता हूं कि कंसोल पर प्रिंट करके कोई अपवाद हो रहा है या नहीं।कंसोल पर एक QWebView में जावास्क्रिप्ट अपवाद प्रिंट करें

मैं जिस कोड का उपयोग कर रहा हूं वह नीचे है। ऐसा करने के लिए मुझे क्या जोड़ने की ज़रूरत है?

from PyQt4 import QtGui, QtWebKit 
browser = QtWebKit.QWebView() 
browser.load(QtCore.QUrl("http://myurl")) 
browser.show() 

धन्यवाद, एंड्रयू

उत्तर

16

QWebPage का एक उपवर्ग बनाएँ और विधि javaScriptConsoleMessage() को परिभाषित:

import sys 
from PyQt4 import QtCore, QtGui, QtWebKit 

class WebPage(QtWebKit.QWebPage): 
    def javaScriptConsoleMessage(self, msg, line, source): 
     print '%s line %d: %s' % (source, line, msg) 

url = 'http://localhost/test.html' 
app = QtGui.QApplication([]) 
browser = QtWebKit.QWebView() 
page = WebPage() 
browser.setPage(page) 
browser.load(QtCore.QUrl(url)) 
browser.show() 
sys.exit(app.exec_()) 

नमूना उत्पादन:

% python qweb.py 
http://localhost/test.html line 9: SyntaxError: Parse error 
6

या फिर आप DeveloperExtrasEnabled जोड़ सकते हैं, QWebView ए राइट क्लिक करें डी का चयन करें।

QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);

+0

मुझे आश्चर्य है कि क्यों इस सवाल का जवाब तो कई upvotes..It तो ... आप अपने वोट दोस्त है .... – repzero

+0

हाँ डेवलपर टूल का उपयोग करने के अपने सामने के छोर आवेदन डिबग करने के लिए आसान नहीं है , यह बहुत आसान और सीधे आगे है। –

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