Javascript 如果window.onload不是当前选项卡,为什么它没有启动?

Javascript 如果window.onload不是当前选项卡,为什么它没有启动?,javascript,event-handling,onload-event,Javascript,Event Handling,Onload Event,我的主页上有href属性(另一页)。如果我点击另一个页面的加载功能,它可以正常工作。如果我使用(控件+左键单击链接)或(右键单击->在新选项卡中打开),如果不是我的活动选项卡或当前选项卡,则不会启动加载功能。如果我立即切换到该特定选项卡,它会像往常一样正常工作。我的问题是,如果它不是我们当前的标签,它会不会不起作用。任何替代方案。谢谢 window.onload=swipe(); 函数滑动(){ 如果(window.outerWidth>1024){ var slider=document.g

我的主页上有
href
属性(另一页)。如果我点击另一个页面的加载功能,它可以正常工作。如果我使用(控件+左键单击链接)或(右键单击->在新选项卡中打开),如果不是我的活动选项卡或当前选项卡,则不会启动加载功能。如果我立即切换到该特定选项卡,它会像往常一样正常工作。我的问题是,如果它不是我们当前的标签,它会不会不起作用。任何替代方案。谢谢

window.onload=swipe();
函数滑动(){
如果(window.outerWidth>1024){
var slider=document.getElementsByClassName(“卡片”)[0];
var isDown=假;
var-startX;
左上角;
slider.addEventListener('mousedown',函数(e){
isDown=真;
startX=e.pageX-slider.offsetLeft;
scrollLeft=slider.scrollLeft;
e、 预防默认值();
});
slider.addEventListener('mouseleave',函数(){
isDown=假;
});
slider.addEventListener('mouseup',function(){
isDown=假;
});
slider.addEventListener('mousemove',函数(e){
如果(!isDown)返回;
e、 预防默认值();
var x=e.pageX-slider.offsetLeft;
var walk=(x-startX)*3;
slider.scrollLeft=scrollLeft-漫游;
});
}
var swipe_sec=document.getElementsByClassName(“卡”)[0];
函数计算程序(winScroll,宽度){
变量滚动=((winScroll)/宽度)*100;
document.getElementById(“t_art_prog”).style.width=滚动+“%”;
}
var winScroll=刷卡秒clientWidth;
var width=刷卡秒滚动宽度-刷卡秒客户端宽度;
计算程序(winScroll,宽度);
滑动第二个addEventListener(“滚动”,函数(){
var winScroll=滑动秒scrollLeft+滑动秒clientWidth;
var width=滑动\u秒滚动宽度;
计算程序(winScroll,宽度);
});

}
问题不在于
窗口。onload
,而在于
如果(window.outerWidth>1024)
窗口。在新选项卡中打开时,outerWidth
将为0

我能想到两个解决方案-

  • 使用
    window.visualViewport.width
    代替
    window.outerWidth
  • 尝试像这样使用焦点事件-

    addEventListener('focus',function(){ ... });

    注意-每次切换到选项卡时都会触发焦点事件,您必须控制它只执行一次