小编典典

ajax加载的内容,脚本未执行

ajax

我正在使用jquery地址插件来加载页面,但是没有hash(#)。

index.html:

<a href="page.html">Link</a>
<div id="content">

    <script>

        $(document).ready(function() {

            $.address.init(function(event) {

                $('a').address();

            }).change(function(event) {
                // do something depending on the event.value property, e.g.
                console.log(event.value);

                $.ajax({
                    type: "POST",
                    url: event.value,
                    success: function(msg){
                        $('#content').html( $(msg).find("#content").html() );
                    }
                });
            });
            $('a').click(function(e) {
                $.address.value($(this).attr('href'));

            });
        });

    </script>


</div>

page.html:

<div id="content">
    <p>text</p>
    <script>
        $(document).ready(function() {
            alert('loaded');
        });
    </script>

</div>

在#content div中将从page.html中加载#content
html(也许我应该使用其他函数,而不是.html(),请纠正我),因为div是script标签,但是加载该页面时我没有收到警告从ajax开始,无需加载ajax就可以运行。有人能帮我吗

编辑:当我尝试单击具有js函数的链接时,出现此错误:

XMLHttpRequest cannot load javascript:;. Cross origin requests are only supported for HTTP.

演示:http :
//fbstatusi.com/desavanja/kalendar/mesecna_lista

点击链接 Zurka 123


阅读 196

收藏
2020-07-26

共1个答案

小编典典

document.ready加载文档时仅发生一次。AJAX请求不会导致它。

<div id="content">
    <p>text</p>
    <script type="text/javascript">
            alert('loaded');
    </script>
</div>

这应该工作。还要尝试更改$(msg).find("#content").html()$(msg).find("#content")[0].innerHTML,因为jquery
html会删除标签。

编辑

看看这个线程,有很长的讨论为什么会发生这种情况。在这种情况下,$(msg)jquery将始终删除脚本标签。但是同时会$(msg).filter("script")返回脚本,因此您可以先找到这些脚本,然后再将其全部插入$('#content').html( $(msg).find("#content").html() );

2020-07-26