在一个div中实现jQuery,该div包含刚刚用jQuery加载的内容';s.load()

在一个div中实现jQuery,该div包含刚刚用jQuery加载的内容';s.load(),jquery,ajax,iframe,html,refresh,Jquery,Ajax,Iframe,Html,Refresh,我有一个div,它使用jQuery用.load()刷新。重新格式化后,新内容将显示在div中。但是,新内容中有jQuery,并且它不工作,即使当该内容加载到它自己的页面上时它确实工作 div也在父窗口中,但是刷新div的jQuery代码在iframe中。代码调用top.document(父窗口)以刷新iframe之外的div 我将在此处显示完整代码: 这是名为test.php的主页。它只有一个简单的iframe,下面是当代码告诉它在iframe中刷新时刷新的div <html> &l

我有一个div,它使用jQuery用.load()刷新。重新格式化后,新内容将显示在div中。但是,新内容中有jQuery,并且它不工作,即使当该内容加载到它自己的页面上时它确实工作

div也在父窗口中,但是刷新div的jQuery代码在iframe中。代码调用top.document(父窗口)以刷新iframe之外的div

我将在此处显示完整代码:

这是名为test.php的主页。它只有一个简单的iframe,下面是当代码告诉它在iframe中刷新时刷新的div

<html>
<head>
</head>
<body >
<iframe src="test2.php" width="400" height="400" frameborder="3"></iframe>
<div id="target">This text will be replaced.</div>
</body>
</html>

非常感谢你能给予的任何帮助

我建议你不要这样做。当然,您不应该让片段加载更多的片段。这样会导致疯狂

我能让它正常工作,但如果我让它再写一遍,我会做得不同。它看起来很脆弱,很难测试。我相信如果宿主文档中包含了所有逻辑,并且片段没有带来任何逻辑,那么它的效果会更好

load()有问题,但我记不起确切的细节。可能是因为浏览器之间的差异?我们最终使用get()而不是load()

最大的症结是$(“#target”)失败,因为新的Javascript没有及时附加到文档。因此,在load()调用期间触发时,它在宿主文档中找不到ID。我可以通过setTimeout()解决这个问题



我刚刚用谷歌浏览器试过,但对我来说不起作用。谢谢你的帮助!啊,我忽略了一些细节,我已经补充了。虽然看起来我最终使用了get(),但我想不起来是因为它不起作用,还是因为它更容易处理我需要执行的其他操作。感谢您尝试澄清,尽管我仍然没有任何运气。我将脚本添加到正文中,与发布的完全相同。后来我尝试用get切换负载。如果您可以发布任何从我的原始示例更改的额外代码,以便我可以简单地复制并粘贴确切的代码,这将非常有用,如果您仍然有代码的话。谢谢正如我所说,我所做的是将我想要的内容放入一个DIV,包括JS。然后我从get请求中提取它并将其放入宿主文档中。太好了。如果无法删除片段加载,是否可以展平设计,以便只有宿主文档正在组装片段?这至少会给你一条最终消除它的道路。
<html>
<head>
</head>
<body>
<a href="test3.php">Click Me, if the div below reloads with the jqery content it worked!</a>
</body>
</html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">

$('#target', top.document).load("test4.php");
$('#target', top.document).get('testb.js');

</script>
</head>
<body>
Sent
</body>
</html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<p>....Polo</p>
<script type="text/javascript" src="testb.js"></script>
var myvariable = "Marco";
$("p").prepend(myvariable);
<body>
    <div id="stuff>
        <script type="text/javascript">
            setTimeout(function() {
                $('#target', top.document).get('testb.js');
            }, 1);
        </script>
        Sent
    </div>
</body>
$.get("/foo/bar", function(html) {
    var div = $('<div></div>');
    div.html(html);
    div.find('#stuff').detach().appendTo(target);
});