2011-01-03 29 views
3

マウスオーバーで特定の会社に関する情報を表示する針があるiframe内に地図を表示しようとしていますが、そのページが開くリンクをクリックするとエクスペリエンスを崩壊させるiframeの内側にあるので、iframe内のリンクを新しいウィンドウで開いたり、代わりにjqueryなどの類似のものを使用したりすることは可能でしょうか?iframe内のリンクを新しいウィンドウで開く

私は気圧持っているコードは

http://www.jsfiddle.net/rkd59/1/

編集です:非常に少なく、このマップは、iFrameの内側にロードされている原因私はIFRAME

答えて

7

これを正しく行うには、何らかの種類のオープンAPIが必要です。Eniroは、this page(スウェーデン語)に従って提供していません。

代わりにGoogle Maps API v3を使用することをお勧めします。私はexample on jsFiddleをEniroと似ています。

私は喜んでこれにもっと助けてくれるので、尋ねてみてください!

+1

これはよくできて、私は達成するために想像することができました。 – Breezer

+0

@ブリーズ:聞いて嬉しいです!私はあなたがGoogle Maps APIを勉強するのが楽しいことを約束します - それは信じられないほど強力です! :) – mekwall

+3

@SteveFentonリンクが壊れています。ホームページにリダイレクトします。更新してください。 –

1

のサイズを変更する可能性があるのiframe内のクリックをキャプチャするには、それはですリンク上でjavascriptイベントリスナーを実行することはできません。どちらもhtmlを変更することはできません。あなたはインラインフレーム内

2

あなたはできません(または極端に)iframe内のイベントを親ページに影響させます。これは、XSSまたはcross site scriptingからの攻撃を防ぐためです。あなたがiframe内のサイトがあなた自身のドメインにあり、非常にトリッキーなajaxingとPHPセッションIDを設定したいのであれば、かもしれません。かもしれませんが、それでも私は分かりません。そして、これがセキュリティーホールであるかどうかは分かりません。誰かがそれを話すことができるかもしれません。メインページは、セッションIDを設定し、iframeのURLに取得変数

  • 経由でiframeの情報をクリックして受け取り、にajaxingの呼び出しを介してセッション変数に送信することを渡し
    1. :それはおそらくのようになります。サーバー上のスクリプト。
    2. メインページはセッションクッキーを読み込み、その値に基づいて変更を加えます。

    すべての場合、別の方法を使用して必要なものを習得するのははるかに簡単で安全です。

  • +0

    'target'属性は現在、HTML 4.01、つまりXHTML v1.xでは廃止予定ですが、HTML5に戻されます。 – mekwall

    1

    を見せているコードを変更することができますただし、これはのみ動作します

    <a href="http://www.yahoo.com" target="_blank">Go to Yahoo</a> 
    

    :あなたは、通常のようなtarget="_blank"を使用する新しいウィンドウでリンクのポップアップを作るために

    +0

    同じドメイン内では、実際にはかなりシンプルです。あなたは親ドキュメントにあるスクリプト/関数を持っていて、それを子フレームからparent.functionname()で呼び出すだけです...しかし、これは同じドメイン両方のドキュメントコードにアクセスする必要があります。 – CarpeNoctumDC

    +0

    iframeの次元内のクリックをキャプチャするには、少なくとも可能な限り多少のリンクが必要です。Δx、Δy内のクリック。ΔY – Breezer

    +0

    @Breezerあなたのコメントは、 _over_ iframeはiframeアイテムをクリックしているように見えますが、実際にはオーバーレイをクリックしています。しかし、当然のことながら、どのクリックもフレーム化されたウェブページに登録されることはありません。 – JakeParis

    0

    部分解があります。

    IFRAMEの上部に絶対配置されたDIVタグを追加し、代わりにこれをクリックすることができます。 20%アルファレッドで斜線で示した例を参照してください。

    http://www.jsfiddle.net/rkd59/6/

    しかし、これは、マップは、「読み取り専用モード」で、あなたは、ユーザーがクリックしたリンク知っている習慣クリックイベントをキャプチャすることができますが動作することを意味します。

    1

    次のことを試してください:新しいフレームで開い

    <script> 
    x=document.querySelectorAll("a"); 
    for(i=0;i<x.length;i++) 
    { 
        x[i].setAttribute("target","_blank"); 
    } 
    </script> 
    

    このようにすべてのリンク。

    関連する問題