Проблема в том, что вы перезагружаете ту же самую страницу, поэтому без возможности сохранить тот факт, что вы уже запустили этот код, он просто запустит его снова.Старомодным способом сделать это было использование файлов cookie:
function timedRefreshIfNoCookie(timeoutPeriod, cookieName) {
var cookies = document.cookie;
if (cookies.indexOf(' '+cookieName+'=1;') < 0) {
document.cookie = cookieName+'=1';
setTimeout(function () {
location.reload();
}, timeoutPeriod);
}
}
window.onload = function() {
timedRefreshIfNoCookie(3000, 'refreshed');
}
document.getElementById('myModal').style.display='block';
Вероятно, вы можете использовать что-то немного лучше, например, локальное хранилище или библиотеку файлов cookie, для более удобной работы с файлами cookie.