Partage
  • Partager sur Facebook
  • Partager sur Twitter

comment activer le javascript de..

.. QWebView et les feuilles de style?

    11 juin 2008 à 12:31:04

    Bonjour,
    comment activer le javascript de QWebView et les feuilles de style ?

    merci
    • Partager sur Facebook
    • Partager sur Twitter
    :)
      11 juin 2008 à 18:44:24

      donc si je comprend bien il faut que je parse le code hmtl moi même et que je face un navigateur quoi.
      Non?
      Sinon je comprend pas très bien.
      sinon j'étais déjà allé voir la doc pour QWebView.
      D'ailleur voici le code que j'ai actuellement :
      #ifndef H_BROWSER_H
      #define H_BROWSER_H
      
      #include <QWebView>
      #include <QUrl>
      
      #include "../index.h" // toutes les definitions, url, images
      
      class Navigateur : public QWidget {
      
      	Q_OBJECT
      
      	public:
      		Navigateur(QWidget *parent=0);
      
      	public slots:
      		void affiche();
      	
      	private slots:
      		void changeUrl(const QUrl &url);
      
      	private:
      			QWebView *view;
      
      };
      #endif
      

      Navigateur::Navigateur(QWidget *parent) : QWidget(parent)
      {
      	view = new QWebView(parent);
          view->load(QUrl(/* QCoreApplication::applicationDirPath() + */VIDEO_URL));
      	connect(view, SIGNAL( linkClicked(const QUrl &url) ), this, SLOT( changeUrl(const QUrl &url) ));
      }
      
      void Navigateur::changeUrl(const QUrl &url)
      {
      	view->setUrl(url);
      }
      
      void Navigateur::affiche()
      {
      	view->show();
      }
      
      • Partager sur Facebook
      • Partager sur Twitter
      :)
        12 juin 2008 à 15:17:16

        QWebView a une méthode settings qui retourne un pointeur sur un QWebSettings. Cherche dans QWebSettings s'il n'y a pas un moyen d'activer ou de désactiver JavaScript...
        • Partager sur Facebook
        • Partager sur Twitter
          12 juin 2008 à 19:13:17

          Je met en pause ce projet par le fait que l'on ne peut ajouter le pluggin flash (inexistant chez Qt pour le moment mais il parait qu'il va apparaitre dans la prochaine version).

          Merci bien.
          Sinon pour le javascript voici le code c++ que j'ai implémenté mais le javascript ne fonctionne toujours pas :
          #ifndef H_BROWSER_H
          #define H_BROWSER_H
          
          #include <QWebView>
          #include <QUrl>
          #include <QWebSettings>
          #include <QStatusBar>
          
          #include "../index.h" // toutes les definitions, url, images
          
          class Navigateur : public QWidget {
          
          	Q_OBJECT
          
          	public:
          		Navigateur(QWidget *parent=0);
          
          	public slots:
          		void affiche();
          	
          	private slots:
          		void changeUrl(const QUrl &);
          
          	private:
          		QWebView *view;
          
          };
          #endif
          

          #include "browser.h"
          
          Navigateur::Navigateur(QWidget *parent) : QWidget(parent)
          {
          	view = new QWebView(parent);
              view->load(QUrl(QCoreApplication::applicationDirPath() + VIDEO_URL));
          	view->settings()->setAttribute( QWebSettings::JavascriptEnabled, true);
          	connect(view, SIGNAL( linkClicked(const QUrl &) ), this, SLOT( changeUrl(const QUrl &) ));
          	connect(view, SIGNAL( titleChanged(const QString &)), this, SLOT( setWindowTitle(const QString &)));
          
          }
          
          void Navigateur::changeUrl(const QUrl &url)
          {
          	view->setUrl(url);
          	view->load(view->url());
          }
          
          void Navigateur::affiche()
          {
          	view->show();
          }
          

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
              <head>
                  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          		<title>Sommaire </title>
          		<link href="style.css" rel="stylesheet" type="text/css" media="screen, print, handheld" />
          		<script type="text/javascript" src="menu.js"></script>
          
              </head>    
          	<body onload="menu(7);">
          	<div id="menu" onmouseover="stopanim();" onmouseout="replayanim();">
          		<h2 >
          				Sommaire<br />
          		</h2>
          		<div id="centre">
          		</div>
          		<ul style="font-family: Arial;">
          			<li id="item1"><a href="pages_videos/1.html" target="_self">blablabla</a></li>
          			<li id="item2"><a href="pages_videos/2.html" target="_self">blablabla</a></li>
          			<li id="item3"><a href="pages_videos/3.html" target="_self">blablabla</a></li>
          			<li id="item4"><a href="pages_videos/4.html" target="_self">blablabla</a></li>
          			<li id="item5"><a href="pages_videos/5.html" target="_self">blablabla</a></li>
          			<li id="item6"><a href="pages_videos/6.html" target="_self">blablabla</a></li>
          			<li id="item7"><a href="pages_videos/7.html" target="_self">blablabla</a></li>
          		</ul>
          	</div>
          	</body>
          </html>
          


          var c = 0;
          var nb2;	  
          var timer;
          
          function menu(nb)
          {
           var a = 360 / nb;		
           nb2 = nb;
           var posX;
           var posY;
          
           var rayon = 60; // valeur défaut 60
           var centreX = document.getElementById("centre").offsetLeft;
           var centreY = document.getElementById("centre").offsetTop;
           var lItem = 20; // valeur défaut 20
           var i = 1;
           var item;
           var b;
           
          for(b = 0; b < 360; b += a)
           {		  
            posX = centreX + 25 + rayon * Math.cos(b * Math.PI / 180); //25
            posY = centreY + 25 + rayon * Math.sin(b * Math.PI / 180); 
            
            item = document.getElementById("item" + i);
            item.className = "item";	
            item.style.top = (posY - lItem / 2) + "px"; 
            item.style.left = (posX - lItem / 2) + "px";
            i++;
           }
          }
          
          function anim()
          {		  
           c++;
           var a = 360 / nb2;		
           var posX;
           var posY;
           var rayon = 150; //70
           var centreX = document.getElementById("centre").offsetLeft;
           var centreY = document.getElementById("centre").offsetTop;
           var lCentre = 200; //200
           var lItem = 50; //50
           var i = 1;
           var item
           var b;
          
           for(b = 0; b < 360; b = b + a)
           {		  
            posX = centreX + 25 + rayon * Math.cos((b + c) * Math.PI / 180);
            posY = centreY + 25 + rayon * Math.sin((b + c) * Math.PI / 180); 
            
            item = document.getElementById("item" + i);
            item.style.top = (posY - lItem/2) + "px"; 
            item.style.left = (posX - lItem/2) + "px";
            i++;
           }	
          }
          
          	
          
          timer = setInterval("anim()",50);
          
          function replayanim()
          {
           timer = setInterval("anim()",50);
          }
          
          function stopanim()
          {
           clearInterval(timer);		   
          }
          


          #menu
          {
           width: auto;
           height: 500px;
           background-color: #FFFF99; 
           border: 1px solid #000000;
          
          }
           
          #menu h2
          {
           color: #0000EE;
           text-align: center;
           font-size: 15px;
           padding: 10px;
           border-bottom: 1px solid black;
          }
          
          #menu li
          {
           list-style-type: none;
           list-style-position: inside;
           margin-left: 150px;
           margin-top: 40px;
          }
          
          #centre
          {
           height: 100px;
           width: 100px;
           margin-left: 300px;
           margin-top: 200px;
           border: 0px solid #BBBBBB;
          }
          
          .item
          {
           position: absolute;
          }
          



          Et aussi quand je clique sur un lien, page blanche..
          Merci bien.
          • Partager sur Facebook
          • Partager sur Twitter
          :)

          comment activer le javascript de..

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown