-2

我需要从 ajax 请求中调用代码,此调用是针对当前时间的。我不知道该怎么做,我设置了一个带有工作时钟的 html 文件。我调用的页面没有显示它从 $container1 加载文本的时钟,但没有显示时钟和日期?有谁知道为什么?如果容器 1 中的文本加载正常,为什么当前时间和日期时钟不工作?

到目前为止,我在 html 中拥有的数据是从中获取的。

var mydate=new Date()
var year=mydate.getYear()
if (year < 1000)
year+=1900
var day=mydate.getDay()
var month=mydate.getMonth()
var daym=mydate.getDate()
if (daym<10)
daym="0"+daym
var dayarray=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
var montharray=new Array("1","2","3","4","5","6","7","8","9","10","11","12")
var date=new Date();
var hours=date.getHours();
var minutes=date.getMinutes();
 var ampm = hours >= 12 ? 'PM' : 'AM';
  hours = hours % 12;
  hours = hours ? hours : 12;
minutes = minutes < 10 ? '0'+minutes : minutes;
var s=date.getSeconds();
s = s < 10 ? '0'+s : s;
var Time = "Current Time:&nbsp;  ";
var Text = "Last Updated:  ";

      document.getElementById('time').innerHTML =Time+" "+dayarray[day]+" "+montharray[month]+"/"+daym+"/"+year+" "+hours+":"+minutes+":"+s+" "+ampm; 
document.getElementById('time2').innerHTML =Text+" "+dayarray[day]; 
}
}
</script>
</head>
<body>
<div id="container1">
<div id="left">By TrueLogic Company
    <p>Edited By International Electronic Components</p>
</div>
<div id="right">
    <div id="time2"></div>[LastBuuild]
    <p>
        <div id="time"></div>
    </p>
</div>
</div>
</body>
</html>

在我希望它加载到的页面中,我尝试了几种方法,但这就是我现在所拥有的。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> 
<script type="text/javascript">

function refreshPage () {
     var page_y = document.getElementsByTagName("body")[0].scrollTop; 
     window.location.href = window.location.href.split('?')[0] + '?page_y=' + page_y;

}
     window.onload = function () {
         setTimeout(refreshPage, 3000);
            if (window.location.href.indexOf('page_y') != -1 ) {
                var match = window.location.href.split('?')[1].split("&")[0].split("=");
                document.getElementsByTagName("body")[0].scrollTop = match[1];

    }

{
     $('#container').load('C:/Program%20Files/TrueChem/Data/dashboard/src/Test.HTML #container1');
  }
}
</script>

<div id="container">
4

1 回答 1

0

这里有很多不必要的代码,但如果我猜我会说问题是这样的:

$('#container').load('C:/Program%20Files/TrueChem/Data/dashboard/src/Test.HTML #container1');

您正在尝试通过 JavaScript 从本地文件系统加载文件。出于明显的安全原因,这不会起作用。(想象一下是否有任何网站可以访问您的本地文件。)

当您使用浏览器调试工具时,这甚至会尝试发出 AJAX 请求吗?它会抛出错误吗?(我猜/希望是后者。)

您的 AJAX 请求需要发送到一个 HTTP 主机(基本上是一个 Web 服务器),它会响应相关数据。JavaScript 无法加载本地文件。

编辑:根据下面的评论线程,听起来问题的核心是您试图通过 AJAX 从另一个页面加载它来在一个页面上运行一些 JavaScript 代码。这可能行不通。该页面实际上没有您要查找的值,它具有生成该值的代码。当您通过 AJAX 获取该代码时,该代码可能不会被执行。

但是,由于它是您所追求的代码而不是页面的内容,因此您甚至不应该真正通过 AJAX 加载页面。您应该将代码放在单独的文件中,并在两个页面上引用该文件。

只需将 JavaScript 代码移动到 .js 文件中并在两个页面上引用该文件:

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

这将使您可以访问生成该值的代码,并且您可以将该值填充到页面上的元素中。

于 2013-07-27T18:52:58.947 回答