Ist die Embedded-Version der SQL-IDE ohne <iframe>-Tag in einer Webseite eingebunden, so können andere Skripte auf der Webseite über das global sichtbare OnlineIDEAccess
-Objekt window.sql_ide_access
auf die Quelltexte aller IDEs zugreifen, für die das Attribut enableFileAccess
auf true
gesetzt ist, also
<div class="sql-online" style="width: calc(100% - 10px); height: 600px; margin-left: 5px" data-sql-online="{ 'id': 'abcd', 'databaseURL': 'assets/databases/world1.sqLite', 'enableFileAccess': true }"> <script type="text/plain" title="Test1.sql" data-type="sql"> select * from test; </script> </div>
Das folgende Skript gibt die Quelltexte aller Programme in der IDE mit der id
"abcd" aus:
let ide = window.sql_ide_access.getIDE('abcd'); let files = ide.getFiles(); for(let i = 0; i < files.length; i++){ let file = files[i]; console.log('Name: ' + file.getName()); console.log('Quelltext:' + file.getText()); }
Hier die in Typescript formulierte Spezifikation der API:
interface OnlineIDEAccess { getIDE(id: string): SingleIDEAccess | undefined; } interface SingleIDEAccess { getFiles(): IDEFileAccess[]; } interface IDEFileAccess { getName(): string; getText(): string; }