ryhmrt’s blog

意識低い系プログラマの雑記

ドメインが異なるページ間においてJavaScriptでデータをやりとりする

セキュリティ制限により、ドメインが異なるページ間ではJavaScriptでデータのやりとりをすることは(素直なやりかたでは)できない。

なんとか回避策はないものかと、昔試行錯誤してみたメモが掘り起こされたので掲載。

一言で言えば、URLパラメータでごにょごにょするというもの。

呼び出し元のページでは、callback関数を定義しておく

window.callback = function(msg){
  alert(msg);
};

で、他のドメインのページを開く

window.open(他のドメインのURL);

開いた先では、直接コールバックをせずに、パラメータ付きで元のドメインのあるページを開く

location.href = あるページのURL + '?' + escape(渡す値);

で、その遷移先のページでコールバック関数を呼んでやる

opener.callback(unescape(location.search.slice(1)));
window.close();

めんどくさい