我正在尝试从 iframe 中setListener();
调用2 个函数。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() { };)重新声明 parent 中的函数。
我会很感激任何建议。
谢谢
更新:经过一些调试后,调用不起作用的原因似乎是因为执行在它们之前停止了一行。不知何故,这一行 "$(".new", window.parent.document).remove();" 打破一切。我现在必须弄清楚那个。我感谢您的所有帮助。