2011-06-28 19 views
0

私はイベントで遊んでいて、iframe内のテキストが強調表示されたときにトリガされるイベントを作成しようとしています。javascript iframe onmouseupが動作しない

<div id="instapaper_div" onmouseup="handleEvent(event)"> 
    <iframe id="instapaper" src ="http://www.instapaper.com/m?u=<%= @content %>" width="90%" height="90%"></iframe> 
</div> 


<script type="text/javascript"> 

    function handleEvent(oEvent) { 
     alert("Event!!") 
    } 
</script> 

、誰もがそれが何であったか疑問に思った場合には<%= @content %>が埋め込まれたルビーの正常に動作し作品ですが、それがここで問題に関連していないのです。私はonmouseupイベントを使用しようとするかもしれないと思いました。

ウェブページのiframeの外側のどこかをクリックすると(このdivセクションはここに掲載されていないHTMLファイル全体です)、「Event !!」というアラートが正しく表示されます。しかし、実際にイベントを発生させたいiframeの内部をクリックすると、何も起こりません。このイベントをiframe内に登録するにはどうすればよいですか?私はiframeタグの中でonmouseupを使ってみましたが、うまくいきませんでした。また、onmouseupが、iframeの "text highlighted"イベントを私が欲しいものとして認識するための最良の方法でない場合は、どのようなイベントを使用すべきですか、どうすれば使用できますか?

ありがとうございます!

答えて

0

iframeが別のドメインに由来するため、同じオリジンポリシーが適用されるため、イベントを検出できません。

基本的に、SOPとは、自分以外のドメインから読み込まれたもののDOMと対話できないことを意味します。

(私はあなたがinstapaper.comからサイトを提供していないと仮定しています。あなたがいる場合、あなたはinstapaper.comからロードされたiframe内イベントを検出することができるはずです。)

https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript

+0

ご了承ください。このポリシーは何を意味し、どのように問題を解決しますか? – Kvass

+0

答えが役に立つと願っています。私はSOPでも頭を下ろそうとしています。 Wikipediaでもそれをチェックしてください。基本的に、私はあなたがそれを回避することはできないと思います。あなたがインスタントページの内容を掻き、あなたのドメインからあなたのユーザーにそれらを提供しない限り...。しかし、私はそれが過度に複雑で本当にうまくいかないと思います。 – bbg

関連する問題