1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
#include <dom.h>
Dom::Dom(const char * l)
{
m_link=l;
}
void Dom::run(QApplication * app)
{
std::cout << m_link << std::endl;
QUrl url(m_link);
connect(&v, SIGNAL(loadProgress(int)), this, SLOT(loadProgress(int)));
QObject::connect(&v, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
connect(&v, SIGNAL(loadFinished(bool)), this, SLOT(applyscript()));
connect(&v, SIGNAL(loadFinished(bool)), this, SLOT(Charger_fichier()));
v.load(url);
v.show();
app -> exec ();
}
void Dom::connectFrame(QWebFrame *f)
{
connect(f, SIGNAL(javaScriptWindowObjectCleared()),
this, SLOT(applyscript()));
}
void Dom::load(QString s)
{
v.page()->mainFrame()->load(s);
}
void Dom::loadProgress(int progress)
{
printf("Loading page: %d%% \r",progress);
fflush(stdout);
}
void Dom::loadFinished(bool ok) {
if (!ok){
printf("failed laodin page ");
fflush(stdout);
}
QString frameText =v.page()->mainFrame()->toHtml();
}
void Dom::applyscript()
{
QString output= "var anchorList = document.getElementsByTagName(\"link\") ;"
"for (var i = 0; i < anchorList.length ; i++)"
"{"
"linkCssOutput.setLink(anchorList[i].href);"
"}";
QWebFrame* f = v.page()->mainFrame();
if (!dataScript) {
dataScript = new ApplyScript();
f->addToJavaScriptWindowObject("linkCssOutput", dataScript);
}
QVariant vr = f->evaluateJavaScript(output);
lien_css =dataScript->getLink();
qDebug()<< "get dans dommm : " << lien_css;
// app->quit();
}
void Dom::Charger_fichier()
{
lien_css =dataScript->getLink();
int j;
for (j=0;j<lien_css.size();j++){
qDebug()<< "liens cssssss: " << lien_css[j];
QUrl urll(lien_css[j]);
page.mainFrame()->load(urll);
page.networkAccessManager()->get(QNetworkRequest(urll));
reply = page.networkAccessManager()->get(QNetworkRequest(urll));
QObject::connect(reply, SIGNAL(finished()), reply, SLOT(slotReadyRead()));
}
}
QNetworkReply* Dom::slotReadyRead()
{qDebug() << "le contenus de la page css"<<reply->readAll(); return reply;}
void ApplyScript::setLink(const QString & data)
{
m_data.push_back(data) ;
qDebug()<< "set data: " << data;
}
QVector <QString> & ApplyScript::getLink( )
{
int j;
for (j=0;j<m_data.size();j++){
qDebug()<< "get: " << m_data[j];
}
return m_data;
} |
Partager