我正在测试一个模板,其中每个页面的 opacity
设置为 0
并在页面加载时将其设置为 1
事件监听器,使其看起来淡入。
我遇到的问题是,当我在移动设备(即 iPhone 5)上点击“后退”时,JS 不会执行,页面的不透明度为 0。
我想这样做是为了节省带宽,但是有没有办法强制浏览器执行它的 JS,即使点击“返回”也是如此?
代码的基本示例:
window.addEventListener('load', function() {
someelement.style.opacity = '1';
});
最佳答案
我想我找到了最好的解决方案,来自这个 thread :
function Reload() {
try {
var headElement = document.getElementsByTagName("head")[0];
if (headElement && headElement.innerHTML)
headElement.innerHTML += " ";
} catch (e) {}
}
if ((/iphone|ipod|ipad.*os 5/gi).test(navigator.appVersion)) {
window.onpageshow = function(evt) {
if (evt.persisted) {
document.body.style.display = "none";
location.reload();
}
}
}
这非常有效。其他解决方案对我不起作用或显示出一些不稳定的情况。参见 documentation for the onpageshow event
关于javascript - 在移动设备上重新加载上一页的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25400770/