Ich habe eine Qt-Anwendung, die einen Webbrowser einbettet (QWebEngineView
). Ich möchte eine JavaScript-Funktion mit einem String-Argument aus der C++ - Anwendung aufrufen. Das heißt:Wie kann ich eine Zeichenfolge umgehen, um sicherzustellen, dass es sich um ein gültiges Zeichenfolgenliteral in der JS-Quelle handelt?
page()->runJavaScript("setContent(\"hello\");");
Dies funktioniert in einfachen Fällen. Allerdings, wenn ich versuchen und Last, sagen wir, eine C++ Quelldatei und verwenden, die als Parameter von setContent
, wird diese brechen, weil ich die Zeichenfolge wie diese nicht einfach zusammenstellen können:
auto js = QString("setContent(\"%1\");").arg(fileStr);
habe ich versucht, die folgende :
Aber anscheinend konnte das der Zeichenkette nicht entkommen, ich erhalte einen Fehler, wenn ich dieses Javascript nenne. Wie kann ich einen langen String mit Zeilenumbrüchen und möglichen Sonderzeichen umgehen, damit ich ein gültiges js-Fragment konstruieren kann?