• 締切済み

フレームで表示すると作動しないJavascript

ボタン画像に次のようなタグを配置してツイッターに跳ぶようにしてあるページ、main.html があります。 <a href="javascript:window.location='http://twitter.com/home?status='+encodeURIComponent(document.title+' '+location.href);" target="_parent"> <img src="twitter_s.png" alt="つぶやく" width="162" height="23" hspace="1" border="0" align="absmiddle"></a> このmain.htmlを直接開いてボタンをクリックすれば正常にツイッターのウインドウが開くのですが、 <frameset rows="56,231" cols="*" framespacing="0" frameborder="no" border="0"> <frame src="index_f.html" /> <frame src="http://www.○○○.@/main.html" /> </frameset> という形でフレームにこのmain.htmlが表示される状態で開くと、 Mac+Safariでアクセスした場合はボタンをクリックしても何も起こらなくなってしまいます。 Winではフレーム無いに表示する形でも正常に作動します。 何が原因なのでしょうか? Safariを利用するMacユーザーがフレームからでもツイッターに跳べるようにするには上記のタグのどこをどう直したら良いでしょうか? 尚、現ページの内容をツイッターに書き込めるようにするタグは他にもWeb上で紹介されているのを見かけましたが、出来るだけ現状のタグとリンク方法を変えずに解決したいと思っています。 上記タグの書き換えで解決する方法がおわかりの方がいらっしゃいましたらどうかよろしくお願い致します。

みんなの回答

回答No.1

同一ドメイン制限のセキュリティーに引っかかってるんじゃないでしょうか。 <frame>のsrcとスクリプトのsrcをすべて同一ドメイン(サブドメインとも)上に配置してみてはいかがでしょうか。 なお、IEでは、 この設定は<form>の送信に関しての設定ですが、 インターネットオプションのセキュリティ設定で、「ドメイン間でのデータソースのアクセス」や、「異なるドメイン間のウインドウとフレームの移動」などでセキュリティーを強化できます。

R4-D4
質問者

お礼

ご回答ありがとうございます。 下フレームに入れてあるコンテンツはどうしても上のフレームの内容と別ドメインにしなければならない事情のあるものなので、その内容をツイートさせるにはフレームに入れて別ドメインにしなければならないのですが、原因を特定するためにと同一ドメイン内にフレームセットを用意して実験してみました。 しかし、index.htmlも上フレームも下フレームも全て同じドメインの同じ階層にしてみてもフレーム内からはツイッターに跳ぶことができませんでした。

関連するQ&A