重新加载.js文件而不按F5

时间:2011-03-26 23:12:20

标签: javascript jquery

我使用jquery .load(file.php)

加载页面

我在file.php中有一个.js包含:<script src='js/script.js' type="text/javascript" language="javascript"></script>

当我加载file.php时,他不会加载我的JS文件...有谁知道为什么以及如何解决它?

由于

3 个答案:

答案 0 :(得分:1)

我不知道为什么,但在加载HTML时,jQuery清除脚本元素。

我最近遇到了同样的问题,经过几天谷歌搜索后,我可以为它实施一个解决方法。

 $.ajax({
     url: 'mypage.aspx',
     data: eval('(' + MyData + ')'),
     dataType: 'html',
     success: function (data) {
         var $div = $('<div></div>').hide().appendTo($("#MY_DIV")).html(data).remove();
         var innerData = $(data).html();
         $("#MY_DIV").html(innerData);
     }
 });

其他可能的方法是在当前页面中添加脚本:

 $.ajax({
     url: 'mypage.aspx',
     data: eval('(' + MyData + ')'),
     dataType: 'html',
     success: function (data) {

         //Add to DOM scripts from the loaded page.
         var headID = document.getElementsByTagName("head")[0];
         var arr = data.match(/<script(.|\n|\t)*?script>/gi);
         if (arr != null) {
             for (var i = 0; i < arr.length; i++) {
                 if (arr[i].match(/<.*?src=.*?>/) != null) {
                     var sSrc = arr[i].match(/src=".*?"/)[0];
                     sSrc = sSrc.replace('src=', '').replace('"', '').replace('"', '');
                     var newScript = document.createElement('script');
                     newScript.type = 'text/javascript';
                     newScript.src = sSrc;
                     headID.appendChild(newScript);
                 }
             }
         }
         var arr = data.match(/<link(.|\n|\t)*?>/gi);
         if (arr != null) {
             for (var i = 0; i < arr.length; i++) {

                 if (arr[i].match(/<.*?href=.*?>/) != null) {
                     var sHref = arr[i].match(/href=".*?"/)[0];
                     sHref = sHref.replace('href=', '').replace('"', '').replace('"', '');
                     var newLink = document.createElement('link');
                     newLink.rel = "stylesheet";
                     newLink.type = "text/css";
                     newLink.media = "all";
                     newLink.href = sHref;
                     headID.appendChild(newLink);
                 }
             }
         }

         $("#MY_DIV").html(data);
     }
 });

答案 1 :(得分:0)

检查路径,为.JS文件创建绝对路径,它应该加载。

<script src='/js/script.js' type="text/javascript" language="javascript"></script>

只是要积极尝试这样......

function ajax(url, selector){   
    $.ajax({
    type: "GET",
    url: url,
        success: function(data){
            $(selector).html(data);
        }
    });
}

ajax("file.php", "#mydiv");

答案 2 :(得分:0)

如何创建脚本标记?另外,请确保链接正确。另外,我听说IE在动态脚本标签方面存在一些问题,您使用的是IE吗?

$("<script src='js/script.js' type='text/javascript' ></script>").appendTo("head");