1

このページ「index.php」があり、その中にポップアップボックスを呼び出す次のリンクがあるとします。

<a href="#" id="signinlink">Sign in</a>

jquery関数は次のとおりです。

<script type="text/javascript" charset="utf-8">
    jQuery(function() {
        function launch() {
             jQuery('#sign_up').lightbox_me({centered: true, onLoad: function() { jQuery('#sign_up').find('input:first').focus()}});
        }
        jQuery('#signinlink').click(function(e) {
            jQuery("#sign_up").lightbox_me({centered: true, onLoad: function() {
                jQuery("#sign_up").find("input:first").focus();
            }
        });
    });
</script>

iframe からこの関数を呼び出す方法は?

(* iframe は親ページ "index.php" から呼び出されます) リンクを追加する必要があると思います

window.parent.callme();

しかし、どのように?助けてください!

4

2 に答える 2

1

まず第一に、iframeがログインフォームと関係がある場合は、独自のコンテンツ自体を送信する必要があります。コードはそこにある必要があり、親フレームで呼び出されることはありません。

とにかく、あなたの質問には、あなたが何をしたいのかについての詳細が欠けています。

親からのものにアクセスするには、次のようにします。

window.parent.functionname()ただの代わりにfunctionname()

それで

$(document).find(...)になりますwindow.parent.$(window.parent.document).find(...)

親からiframeにアクセスするには、iframeDOMノードのcontentDocumentをフェッチする必要があります。

これも役立ちます:jQueryを使用してIFrameのDOMを公開する方法は?

質問をより明確にすることができれば、あなたが持っているもので動作するコードの例を示すことができるかもしれません。

于 2013-02-16T22:28:32.390 に答える
0

これは私にとってはうまくいきます - ただし、jQuery を 1.8 に設定するか、 jQuery の移行を追加する場合にのみ、lightbox-me には 1.8 で非推奨になり、1.9 で削除されたブラウザー検出コードが必要になるためです。

デモ

iframe 内 (iFrame に jQuery がないと仮定):

<a id="parentsignin" href="#">Signup</a>

使用して

window.onload=function() {
  document.getElementById("parentsignin").onclick=function() {
    parent.document.getElementById('signinlink').click();
    return false;
  }
}

実際には、親でこれを行うことをお勧めします。リンク自体を preventDefault でキャンセルし、コードを再利用していることに注意してください。

function launch() {
  $('#sign_up').lightbox_me({ 
    centered: true, 
    onLoad: function() { 
      $('#sign_up').find('input:first').focus();
    }
  });
}


$(function() {
  $('#signinlink').click(function(e) {
    e.preventDefault(); // stop the link from being followed
    launch(); 
  });
});
于 2013-02-17T07:46:58.563 に答える