Load iFrame on page load

This commit is contained in:
Berkeley Martinez
2015-11-22 19:42:53 -08:00
parent 6f98f62dd9
commit 5a785dbad7
7 changed files with 123 additions and 84 deletions

View File

@@ -1,4 +1,4 @@
window.common = (function({ common = { init: [] } }) {
window.common = (function({ Rx: { Observable }, common = { init: [] } }) {
var libraryIncludes = `
<link
rel='stylesheet'
@@ -19,21 +19,29 @@ window.common = (function({ common = { init: [] } }) {
</style>
`;
var iFrameScript = "<script src='/js/iFrameScripts.js'></script>";
const iFrameScript$ =
common.getScriptContent$('/js/iFrameScripts.js').shareReplay();
// runPreviewTests$ should be set up in the preview window
common.runPreviewTests$ =
() => Observable.throw({ err: new Error('run preview not enabled') });
common.updatePreview = function updatePreview(code = '', shouldTest = false) {
common.updatePreview$ = function updatePreview$(code = '') {
const previewFrame = document.getElementById('preview');
const preview = previewFrame.contentDocument ||
previewFrame.contentWindow.document;
if (!preview) {
return code;
return Observable.just(code);
}
preview.open();
preview.write(libraryIncludes + code + (shouldTest ? iFrameScript : ''));
preview.close();
return code;
return iFrameScript$
.map(script => `<script>${script}</script>`)
.doOnNext(script => {
preview.open();
preview.write(libraryIncludes + code + script);
preview.close();
})
.map(() => code);
};
return common;