iframe 内から2 つの関数setListener();
を呼び出そうとしています。addNewBox();
私はいたるところを見て、すべてを試しましたが、うまくいきません。
PHPのrequireを介してチャンクで構築されているため、親のヘッドにアクセスできません。
これは、親ファイルがどのように見えるかの大まかなモックアップです。
<head>
<?php require "head.html" ?>
</head>
<body>
<?php require "content.html" ?>
</body>
content.html モックアップ:
<!-- a bunch of boring divs -->
<iframe src="image_editor.html"></iframe>
<script> /* random ajax */ </script>
<script>
$(document).ready(function(e) {
//init
setListener();
addNewBox();
function setListener()
{
//MAGIC HAPPENS
}
function addNewBox()
{
//GREATER MAGIC HAPPENS
}
}
</script>
image_editor.html モックアップ:
<body>
<form id="image_form">
<input type="submit" value="Submit"/>
</form>
<script>
$(document).ready(function(e) {
$("#image_form").submit(function(e) {
//MAGIC HAPPENS HERE
//re-adds listeners
window.parent.addNewBox();
window.parent.setListener();
}
</script>
</body>
top の使用から、パブリック形式 (window.myFunction = function() { };) で親の関数を再宣言するまで、オンラインで見つけることができるすべてのソリューションを試しました。
アドバイスをいただければ幸いです。
ありがとう
更新: いくつかのデバッグの後、呼び出しが機能しない理由は、実行がそれらの 1 行前で停止するためであると思われます。どういうわけかこの行「$(".new", window.parent.document).remove();」すべてを壊します。私は今それを理解しなければなりません。皆様のご協力に感謝いたします。