Javascript 如何在onLoad和onBeforeUnload事件上创建一个函数
我有以下代码来调用onLoad和onBeforeUnload事件:Javascript 如何在onLoad和onBeforeUnload事件上创建一个函数,javascript,onload,onbeforeunload,Javascript,Onload,Onbeforeunload,我有以下代码来调用onLoad和onBeforeUnload事件: <script type="text/javascript"> var startime = (new Date()).getTime(); window.onload = record_visit_ol; //ol - onload window.onbeforeunload = record_visit_obul; //obul = onbeforeunload function record_visit_ol
<script type="text/javascript">
var startime = (new Date()).getTime();
window.onload = record_visit_ol; //ol - onload
window.onbeforeunload = record_visit_obul; //obul = onbeforeunload
function record_visit_ol() {
var x = (window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
x.open("GET", "count_visit.php?t=" + (((new Date()).getTime() - startime) / 1000)+"&type=ol&url="+escape(window.location.href), false);
x.send(null);
}
function record_visit_obul() {
var x = (window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
x.open("GET", "count_visit.php?t=" + (((new Date()).getTime() - startime) / 1000)+"&type=obul&url="+escape(window.location.href), false);
x.send(null);
}
var startime=(新日期()).getTime();
window.onload=记录访问//超负荷
window.onbeforeunload=记录访问对象//obul=卸载前打开
功能记录(访问){
var x=(window.ActiveXObject)?新的ActiveXObject('Microsoft.XMLHTTP'):新的XMLHttpRequest();
x、 打开(“GET”、“count_visit.php?t=“+((new Date()).getTime()-startime)/1000+”&type=ol&url=“+escape(window.location.href),false);
x、 发送(空);
}
功能记录\u访问\u obul(){
var x=(window.ActiveXObject)?新的ActiveXObject('Microsoft.XMLHTTP'):新的XMLHttpRequest();
x、 打开(“GET”、“count_visit.php?t=“+((new Date()).getTime()-startime)/1000+”&type=obul&url=“+escape(window.location.href),false);
x、 发送(空);
}
这很有效。但是,我有2个功能,用于2个事件。我尝试只创建一个函数,但它在onLoad期间触发两个事件
下面是加载页面时激发onBeforeUnload事件的代码:
<script type="text/javascript">
var startime = (new Date()).getTime();
window.onload = record_visit('ol'); //ol - onload
window.onbeforeunload = record_visit('obul'); //obul = onbeforeunload
function record_visit(value) {
var x = (window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
x.open("GET", "count_visit.php?t=" + (((new Date()).getTime() - startime) / 1000)+"&type="+value+"&url="+escape(window.location.href), false);
x.send(null);
}
var startime=(新日期()).getTime();
window.onload=记录访问(“ol”)//超负荷
window.onbeforeunload=记录访问(“obul”)//obul=卸载前打开
功能记录\访问(值){
var x=(window.ActiveXObject)?新的ActiveXObject('Microsoft.XMLHTTP'):新的XMLHttpRequest();
x、 打开(“GET”、“count_visit.php?t=“+((new Date()).getTime()-startime)/1000)+“&type=“+value+”&url=“+escape(window.location.href)”,false);
x、 发送(空);
}
问题在于,您正在调用第二组代码中的函数。您需要传递一个函数:
window.onload = function(){
record_visit('ol'); //ol - onload
}
window.onbeforeunload = function(){
record_visit('obul'); //obul = onbeforeunload
}
问题是您正在调用第二组代码中的函数。您需要传递一个函数:
window.onload = function(){
record_visit('ol'); //ol - onload
}
window.onbeforeunload = function(){
record_visit('obul'); //obul = onbeforeunload
}
试试这个:
window.onload = function(){ record_visit('ol'); }
window.onbeforeunload = function(){ record_visit('obul'); }
试试这个:
window.onload = function(){ record_visit('ol'); }
window.onbeforeunload = function(){ record_visit('obul'); }
当它工作时,请确保在不同的浏览器中检查它。如果我没记错的话:并不是所有浏览器都允许您在
onbeforeunload
中进行ajax调用。当它正常工作时,请确保在不同的浏览器之间进行检查。如果我没记错的话:并非所有浏览器都允许您在onbeforeuload
中进行ajax调用。