twitterをiframeで操作する方法
javascriptでは外部サーバーに大してRequestを送ることができないので、iframeを使うのが一般的(?) だけども、twitterの場合以下のコードでそれを阻止しようとしているっぽい。
// 関係の無い部分は削ってあります。 //<![CDATA[ if (window.top !== window.self) { setTimeout(function() { document.body.innerHTML=''; },1); window.self.onload = function(evt) { document.body.innerHTML=''; }; } //]]>
これがなかなか厄介で解決できないのかと思っていたのだけれども、いろいろと試してみたらなんとかiframe内を取得できた。
var f = document.createElement("iframe"); f.setAttribute("src", "http://twitter.com/twitter"); f.setAttribute("id", "_tif"); document.body.appendChild(f); f.contentWindow.top = f.contentWindow.self; // これ
こんな事して動くのかはわからなかったけど、動いているのでまぁいいか。
ちなみにSafari@Mac ver.3.1.2のみで確認。他の環境では動くかわかりませんが、試してみてはいかがでしょう。
ちなみに内容は
var f = document.getElementById("_tif"); alert(f.contentWindow.document.body.innerHTML);
で取得できます。