我的主页名为main.aspx。在这我有2帧a.aspx和b.aspx 和代码是
<frameset rows="20%,80%">
<frame name="b" src="b.aspx"/>
<frame name="a" src="a.aspx"/>
</frameset>
在a.aspx中我有定时器实现,有启动和停止按钮,代码是
<table>
<tr>
<td>
<input id="txt1" type="text" />
</td>
<td id="td1" runat="server">
<p id="output" class="output">00:00:00</p>
<div id="controls">
<button id="startPause">Start</button>
<button id="reset">Stop</button>
</div>
</td>
</tr>
</table>
<a id="reload" href="demo.aspx"> **Another Demo** </a>
<p id="p1"></p>
我有另一个名为demo.aspx的演示页面,它将链接重定向到a.aspx
在b.aspx中,我有另一个计时器在这个框架中显示
<table>
<tr>
<td id="td1" runat="server">
<p id="timer" class="displayNone">00:00:00</p>
</td>
</tr>
</table>
在这个b.aspx中,我有两个定时器的定时器实现代码,即a.aspx中的定时器和b.aspx中的定时器以及b.aspx的javascript代码
var time = 0;
var running = 0;
var prevTdTxtBox;
var temp = 0;
var stopVal;
var tdClientId;
$("table", window.parent.frames['a'].document).on("click", "#startPause", function () {
startPause(this);
});
$("table", window.parent.frames['a'].document).on("click","#reset", function () {
reset(this);
});
function startPause(val) {
tdClientId = $(val).closest('td');
prevTdTxtBox = tdClientId.prev().find("input")[0].id;
$("#" + prevTdTxtBox, window.parent.frames['a'].document).val("00:00:00");
if (tdClientId[0].id != null) {
if (running == 0) {
running = 1;
document.getElementById("timer").className = "output";
increment(val);
$("#" + val.id, window.parent.frames['a'].document).text("Pause");
} else {
running = 0;
$("#" + val.id, window.parent.frames['a'].document).text("Resume");
}
}
}
function reset(val) {
stopVal = val;
running = 0;
$("#p1", window.parent.frames['a'].document).text("The clock time is " + temp + " secs");
time = 0;
$("#" + val.id, window.parent.frames['a'].document).prev().text("Start");
var op = $("#" + $(val).closest('td').find('p')[0].id,
window.parent.frames['a'].document).text();
$("#" + prevTdTxtBox, window.parent.frames['a'].document).val(op);
$("#" + $(val).closest('td').find('p')[0].id,
window.parent.frames['a'].document).text("00:00:00");
document.getElementById("timer").className = "displayNone";
}
function increment(val) {
if (running == 1) {
setTimeout(function () {
time++;
var hrs = Math.floor(time / 10 / 60 / 60);
var mins = Math.floor(time / 10 / 60);
var secs = Math.floor(time / 10 % 60);
if (mins < 10) {
mins = "0" + mins;
}
if (secs < 10) {
secs = "0" + secs;
}
if (hrs < 10) {
hrs = "0" + hrs;
}
temp = secs;
var para = $(val).closest('td').find('p')[0].id;
$("#" + para, window.parent.frames['a'].document).text(hrs + ":" + mins + ":" + secs);
document.getElementById("timer").innerHTML = hrs + ":" + mins + ":" + secs;
increment(val);
}, 100);
}
}
当我点击开始a.aspx和b.aspx中的计时器都开始,暂停和恢复也在这里正常工作
问题是,当我点击a.aspx中的Another Demo链接时,它将重定向到demo.aspx,并从demo.aspx重定向到使用demo.aspx中的链接重定向到a.aspx,
现在两个计时器都显示它们正在工作的接缝时间,但是当我尝试点击停止并启动按钮时它们不起作用。
先谢谢。