Skip to content
legokichi edited this page Nov 1, 2014 · 1 revision

IframeInserter.js

IframeInserter.js は https://github.com/legokichi/WMIframeInserter.js で公開されている JavaScript ライブラリです。 Browser 環境で動作し、Closure Compiler で Minify した状態でも動作します。

IframeInserter.js は DataURIScheme.js に依存しています。

IframeInserter.js を組み込むと、 global.WMIframeInserter が追加されます。

IframeInserter は、iframeへの動的なコンテンツ挿入をするライブラリです。

## IframeInserter ```js var IframeInserterObject = new IframeInserter(iframe:HTMLIFrameElement); ``` ## IframeInserter.prototype.write IframeInserter#write(code:String):Void は、document#writeを利用してiframeにコンテンツを挿入します。
function IframeInserter_write(code){ // @arg String
                                     // @ret void
//{@dev
    $args(IframeInserter_write, arguments);
//}@dev
    this.iframe.contentDocument.open();
    this.iframe.contentDocument.write(code);
    this.iframe.contentDocument.close();
}
## IframeInserter.prototype.blobURL IframeInserter#blobURL(code:String):Void は、createObjectURLとiframe要素のsrc属性を利用してiframeにコンテンツを挿入します。
function IframeInserter_blobURL(code){ // @arg String
                                       // @ret void
//{@dev
    $args(IframeInserter_blobURL, arguments);
//}@dev
    var url = URL.createObjectURL(new Blob([code], {"type": "text/html"}));
    this.iframe.setAttribute("src", url);
}
## IframeInserter.prototype.srcdoc IframeInserter#srcdoc(code:String):Void は、iframe要素のsrcdoc属性を利用してiframeにコンテンツを挿入します。
function IframeInserter_srcdoc(code){ // @arg String
                                      // @ret void
//{@dev
    $args(IframeInserter_srcdoc, arguments);
//}@dev
    this.iframe.setAttribute("srcdoc", code);
}
## IframeInserter.prototype.dataURI IframeInserter#dataURI(code:String):Void は、data URI Schemeとiframe要素のsrc属性を利用してiframeにコンテンツを挿入します。
function IframeInserter_dataURI(code){ // @arg String
                                       // @ret void
//{@dev
    $args(IframeInserter_dataURI, arguments);
//}@dev
    var iframe = this.iframe;
    console.log(DataURIScheme, window);
    DataURIScheme["StringToDataURI"](code, "text/html", function(err, dataURI){
        if(!!err) return console.error(err);
        iframe.setAttribute("src", dataURI);
    });
}
Clone this wiki locally