【问题标题】:Reload a JS or div not a complete page重新加载一个 JS 或 div 不是一个完整的页面
【发布时间】:2017-04-25 18:18:06
【问题描述】:

我想通过单击按钮重新加载某个 div 中的 js,而无需重新加载整个页面。也可以只重新加载加载js的div。

我已经尝试了几种解决方案,例如: http://www.philnicholas.com/2009/05/11/reloading-your-javascript-without-reloading-your-page/

或其他帖子的一些想法,例如从这里 Refresh/reload the content in Div using jquery/ajax

以这段代码为例:

$("#content").load(location.href + " #content");

仅重新加载 div,但不重新加载脚本,并且不显示任何内容。

使用 ajax 请求,它将所有 js 代码作为文本放入 div 中。

你还有什么想法吗?

编辑:加载的脚本根据会话的某些值显示内容。单击按钮会更改值,这将导致 div 中的另一个内容运行脚本。

编辑 2: 当前状态是重新加载整个页面: 这是脚本添加其他内容(其他 div 和内容)的 div:

            <div id="dynamic_content">
                 <script src="myjs.js"></script>
            </div>

这里是改变内容视图的按钮:

            <div id="change_view_mode" onclick="change_view()">                 
                <script> 

                    if(window.SESSION.view_mode == "simple"){
                        document.getElementById("change_view_mode").innerHTML = "complex tree";

                    }else{
                        document.getElementById("change_view_mode").innerHTML = "simple tree";
                    }

                </script>
            </div>

这里是改变视图的功能,我试图实现内容的重新加载:

                //toggle view and reload the page
                function change_view(){
                        if(window.SESSION.view_mode == "simple"){

                            $.ajax({
                                    url:'set_view_mode.php',
                                    async: false,
                                });
                            //$("#dynamic_content").load(location.href + " #dynamic_content");
                            location.reload(true);
                        }else{

                            $.ajax({
                                    url:'set_view_mode.php',
                                    async: false,
                                });
                            //$("#dynamic_content").load(location.href + " #dynamic_content");
                            location.reload(true);
                        }
                    }

我通过调用一个小的 php 文件来更改会话中的 view_mode。然后我尝试了提到的几件事(其中一个作为注释留在代码中)。这取决于当前视图。所以它只是将视图从一个切换到另一个。

【问题讨论】:

  • 你好@Maki,检查我的答案。这是你需要的吗?

标签: javascript jquery html ajax reload


【解决方案1】:

我已经为你的答案创建了一个 git 存储库,你可以试试这个方法: https://github.com/RobinHossain/ajax-page-load

现场演示链接: http://ajax-page-load.w3bd.com/

【讨论】:

    猜你喜欢
    • 2013-09-18
    • 2016-04-19
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多