iframeで呼び出されているhtmlファイル内にjsファイルが含まれています。私は、iframeの内側で呼び出されたjsの実行をiframeの外側で宣言されたjquery関数で置き換えるjquery関数を探しています。iframe内のjquery関数を停止する方法
たとえば、iframeにメニューがあり、パラレルエフェクトのあるセクションにスライドします。私は単純にjQuery関数をスライドにリンクして、iframe内のjsファイルの中で宣言されていないはずです。
次のHTMLコードを言うことができますが、インラインフレームの内側にある:
$('.navbar-collapse ul li a').click(function() {
$('html, body').animate({
scrollTop: $(this.hash).offset().top - 79
}, 1000);
return false;
});
は今、私は、これは編集モードになりたい:
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right" id="nitsmenu" data-nitspagelabel="1">
<li class="scroll active"><a href="#navigation">Home</a></li>
<li class="scroll"><a href="#aboutus">About Us</a></li>
<li class="scroll"><a href="#services">Services</a></li>
<li class="scroll"><a href="#ourteam">Our Team</a></li>
<li class="scroll"><a href="#portfolio">Portfolio</a></li>
<li class="scroll"><a href="#clients">Clients</a></li>
<li class="scroll"><a href="#blog">Blog</a></li>
<li class="scroll"><a href="#contact">Contact</a></li>
</ul>
</div>
今では、次のコードを持っているmain.js
ファイルを持っていますユーザーがulセクションをクリックすると、メニューの順序を編集したり削除したり追加するボタンが表示されます。私はmain.js
で使用される機能を使用して停止したい
$('#nitseditpreview').load(function() { //The function below executes once the iframe has finished loading
var menu = $(this).contents().find('#nitsmenu');
all_li = $(this).contents().find('ul#nitsmenu > li');
$(all_li).find("a").removeAttr("href");
$(all_li).find("a").css({
'color': '#000'
, 'background-color': 'none'
});
menu.hover(function (event) {
$(this).css('border', 'solid 2px #8080ff');
}, function() {
$(this).css('border', 'none');
});
$(this).click(function (e) {
stop(); // where this prevents default or stops the event called in main page of js
//....executes the function....
});
});
:私は親editor.js
ファイルで次の手順を試してみました。しかし、iframeの外側にあるときは、main.jsファイルが再度必要です。
内側フレームと外側フレームは同じドメインにありますか? – CherryDT
はい私はルールに従っています。 –
その場合、 'window.parent.myFunction'(あるいは' window.parent。$(...) 'を使って内側のフレームの関数にアクセスできますが、これが良いかどうかは分かりません) (またはIFrameをjQueryオブジェクトとして持っている場合は、 '$ myIframe.get(0).contentWindow.myFunction')を使用してラウンドします。したがって、何かを置き換える代わりに、内部フレームに外部フレームの関数を呼び出させることができます。しかし、それはまだ私には少し奇妙に聞こえるし、より良いアーキテクチャがあるのだろうか?あなたのユースケースをもう少し説明できますか? – CherryDT