QString variable to Javascript: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
m (d'oh - mis-punctuated)
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:snippets]]<br />[[Category:Developing_with_Qt::QtWebKit]]
{{LangSwitch}}
[[Category:HowTo]]
[[Category:Snippets::Misc]]
[[Category:Developing with Qt::QtWebKit]]
Small snippet showing how to call two javascript functions, one without any param, and one with a QString param…


Small snippet showing how to call two javascript functions, one without any param, and one with a QString param…
This is a simple html to test with
<code>
<html>
<head>
<script type="text/javascript">
function displaymessage(str)
{
  alert(str);
}


This is a simple html to test with<br /><code><br />&amp;lt;html&amp;amp;gt;<br /> &amp;lt;head&amp;amp;gt;<br /> &amp;lt;script type=&quot;text/javascript&amp;quot;&amp;gt;<br /> function displaymessage(str)<br /> {<br /> alert&amp;amp;#40;str&amp;amp;#41;;<br /> }
function displayhello()
{
  alert("Hello");
}
</script>
</head>


function displayhello()<br /> {<br /> alert&amp;amp;#40;&quot;Hello&amp;quot;&amp;#41;;<br /> }<br /> &amp;lt;/script&amp;amp;gt;<br /> &amp;lt;/head&amp;amp;gt;
<body>
  <form>
    <input type="button" value="Click me!">
  </form>
</body>
</html>
</code>


&amp;lt;body&amp;amp;gt;<br /> &amp;lt;form&amp;amp;gt;<br /> &amp;lt;input type=&quot;button&amp;quot; value=&quot;Click me!&quot;&amp;gt;<br /> &amp;lt;/form&amp;amp;gt;<br /> &amp;lt;/body&amp;amp;gt;<br />&amp;lt;/html&amp;amp;gt;<br /></code>
Now using the Designer, load this page to a {{DocLink|QWebView}} in your mainwindow. And in the mainwindow.cpp


Now using the Designer, load this page to a QWebView in your mainwindow. And in the mainwindow.cpp
<code>
QWebFrame* frame = ui->webView->page()->mainFrame();


<code><br /> QWebFrame *frame = ui-&gt;webView-&gt;page()<s>&gt;mainFrame();
// the below line will call the javascript function that does not have any param
<br /> // the below line will call the javascript function that does not have any param<br /> frame</s>&gt;evaluateJavaScript(&quot;displayhello()&quot;);
frame->evaluateJavaScript("displayhello()");


// now this is how to call the javascript function which takes a QString param<br /> QString data(&quot;Qt is the Best!&quot;); // can be some large data, say from a file
// now this is how to call the javascript function which takes a QString param
QString data("Qt is the Best!"); // can be some large data, say from a file


QString param = QString(&quot;displaymessage('%1')&quot;).arg(data); // FIXME: Does not work if &quot;data&amp;quot; contains a quote character!<br /> frame-&gt;evaluateJavaScript(param);<br /></code>
QString param = QString("displaymessage('%1')").arg(data); // FIXME: Does not work if "data" contains a quote character!
frame->evaluateJavaScript(param);
</code>

Latest revision as of 12:07, 28 November 2016

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

Small snippet showing how to call two javascript functions, one without any param, and one with a QString param…

This is a simple html to test with

<html>
 <head>
 <script type="text/javascript">
 
 function displaymessage(str)
 {
   alert(str);
 }

 function displayhello()
 {
   alert("Hello");
 }
 
 </script>
 </head>

 <body>
   <form>
     <input type="button" value="Click me!">
   </form>
 </body>
</html>

Now using the Designer, load this page to a QWebView in your mainwindow. And in the mainwindow.cpp

QWebFrame* frame = ui->webView->page()->mainFrame();

// the below line will call the javascript function that does not have any param
frame->evaluateJavaScript("displayhello()");

// now this is how to call the javascript function which takes a QString param
QString data("Qt is the Best!"); // can be some large data, say from a file

QString param = QString("displaymessage('%1')").arg(data); // FIXME: Does not work if "data" contains a quote character!
frame->evaluateJavaScript(param);