タグ

2016年2月16日のブックマーク (2件)

  • クロスドメインでiframeを扱う - knowledge base

    以前、iframeについていくつか記事を書かせて頂きましたが、その続編です。 iframeで別ページを読み込む際、同じドメインでないとエラーが発生し、iframe内の要素にアクセスすることができなくなってしまいます。 一例ですが、子ページと同じ大きさにiframeをリサイズすることができなくなってしまいます。 対処法をまとめます。 postMessageを使う 親ページ→子ページへのアクセスは禁じられていますが、window.postMessage()メソッドを用いて子ページ→親ページへメッセージを受け渡すことは可能になっています。 モダンブラウザ、IE8で実装済みです。 子ページ側(メッセージを送る側) parent.postMessage('hello','*'); 第一引数は送りたいメッセージ、第二引数には対象ドメインを指定します。 ここでは対象ドメインに「*(すべて可)」を指定して

    クロスドメインでiframeを扱う - knowledge base
  • Web Messagingによるメッセージ通信(3/4):JavaScriptによるHTML5プログラミング入門 - libro

    複数のウインドウを組み込んでメッセージ送受を行うとなると、「これって、どのウインドウから来たメッセージだっけ?」ということが問題となってきます。すべて同じサイト内にあるものだと、オリジンでチェックすることも出来ません。 こうしたときに用いられるのが「チャンネル(メッセージチャンネル)」です。チャンネルは、メッセージの送受先をセットで管理するものです。これは「MessageChannel」というオブジェクトとして用意されています。 MessageChannelには、2つのポートがあります。この2つのポートに、メッセージの送信先と受信先を設定することで、この2つのウインドウ間でのみメッセージを送受することが可能になります。これは、以下のようにして利用します。 1. MessageChannelを使った送信 ・オブジェクトを作成var channel = new MessageChannel()