読者です 読者をやめる 読者になる 読者になる

やったこと

webサービスを作るときに考えたことを垂れ流します

ニコニコ外部プレイヤーを動的に読み込むのむずいな

ニコニコ動画は、以下のようなjavascriptコードを張ると外部サイトからも閲覧することできる(ニコニコ外部プレイヤー機能)。

<script type="text/javascript" src="http://ext.nicovideo.jp/thumb_watch/sm23942482?w=490&h=307"></script>

この外部プレイヤーを、ページに対して動的に追加しようと思ったんだけど、どうもうまくいかない(上記のscriptをappendChildで追加してもプレイヤー表示されない。。)

上記の"http://ext.nicovideo.jp/"にあるjavascriptコードをハックすればできるのかもしれないけど、それはちょっと大変そうだから敬遠した(いきなり仕様変更とかされたら使えなくなっちゃいそうだしね)。

そこで、あらかじめニコ動プレイヤーを張ったページを用意してあげてiframeで追加してあげるようにしたら、動的に追加できた!

var iframe = document.createElement("iframe");
iframe.src = "iframe.html";
document.body.appendChild(iframe);

しかし、ここには一個罠が仕掛けられてた。

ニコ動プレイヤーは画面をクリックするとニコニコ動画本店にジャンプするようになってるんだけど、このジャンプのタイミングで以下のようなエラーが出て動画の再生が止まってしまう。

"Refused to display 'http://www.nicovideo.jp/watch/sm23942482?via=thumb_watch' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'."

HTTPレスポンスヘッダのX-Frame-Optionsというのが'SAMEORIGIN'にセットされていて、iframeこのサイトが表示できないと怒っている様子。

画面クリックされるたびに停止してしまうようじゃ使い物にならないな。iframeを使った作戦はあんましよくないみたい。

なにか他によい方法ないか模索中。。