2013-03-07 26 views
0

Могу ли я перезагрузить текущую страницу при нажатии кнопки «Назад». Я расскажу вам о своей проблеме, чтобы узнать причину, по которой я хочу это сделать. У меня есть фреймворк веб-приложения asp.net 3.5, который отображает созданный pdf-файл в ajax modalpop. Выполнение этой задачи непросто, так как это связано с некоторыми проблемами с перекрестным браузером, с которыми я столкнулся и которым удается справиться со всеми этими проблемами, и только оставил мне эту проблему. Мне удается отобразить pdf-файл в iframe в ajax modalpopup, и эта настройка совместима с Chrome, Firefox, Safari и Opera, но не с IE. Мне удалось найти решение на 64-разрядной версии IE9 с использованием файла response.binarywrite и pdf будет отображаться на новом экземпляре Adobe Acrobat Reader (v11 и v10), но на IE9 32bit это не то, как он делает PDF, он отображает на самой текущей странице и я не хочу быть таким, и когда пользователь нажимает кнопку «Назад» браузера, он перенаправляется на последнюю страницу, которую посетил не на странице, где я нажимаю кнопку, чтобы отобразить pdf. Я знаю, что, просматривая браузер, он все еще находится на текущей странице, где запускается триггер для загрузки pdf. Теперь можно перезагрузить текущую страницу, нажав кнопку «Назад» и перезагрузив ее на странице, где файл PDF не отображается. Обратитесь к приведенному ниже коду к тому, что я сделал до сих пор.Как перезагрузить текущую страницу при нажатии кнопки пользователя браузера

<script type="text/javascript"> 
    window.onunload = function { 
    alert(document.URL); 
    window.location = document.URL; 
    window.history.go(-1); 
    } 
</script> 

предупреждение Контекстное при попытке обратно в браузере, но ниже код не выполняется, может быть, он был казнен, но там не влияет на этой странице. Пожалуйста, мне очень нужна помощь, спасибо заранее.

+1

[Возможно, это поможет] (http://jsfiddle.net/DerekL/4EJLG/show) –

+0

Вы можете использовать History API http://diveintohtml5.info/ history.html, но я не знаю, работает ли он в IE. – jcubic

+0

@jcubic - IE 10 или выше. –

ответ

1
function SetCookie (name, value) { 
var argv=SetCookie.arguments; 
var argc=SetCookie.arguments.length; 
var expires=(argc > 2) ? argv[2] : null; 
var path=(argc > 3) ? argv[3] : null; 
var domain=(argc > 4) ? argv[4] : null; 
var secure=(argc > 5) ? argv[5] : false; 
document.cookie=name+"="+escape(value)+ 
    ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+ 
((path==null) ? "" : ("; path="+path))+ 
((domain==null) ? "" : ("; domain="+domain))+ 
((secure==true) ? "; secure" : ""); 

}

function getCookie(c_name) 
{ 
var c_value = document.cookie; 
var c_start = c_value.indexOf(" " + c_name + "="); 
if (c_start == -1) 
{ 
    c_start = c_value.indexOf(c_name + "="); 
} 
if (c_start == -1) 
{ 
    c_value = null; 
} 
else 
{ 
    c_start = c_value.indexOf("=", c_start) + 1; 
    var c_end = c_value.indexOf(";", c_start); 
    if (c_end == -1) 
    { 
     c_end = c_value.length; 
    } 
    c_value = unescape(c_value.substring(c_start,c_end)); 
} 
return c_value; 
} 




if (getCookie('first_load'))   
{ 
if (getCookie('first_load')==true) 
{ 
    window.location.reload(true); // force refresh page-liste 
    SetCookie("first_load",false); 
} 
} 
    SetCookie("first_load",true); 
0

Я не совсем понимаю, чего вы пытаетесь достичь, но возможным решением было бы отправить пользователя изначально на страницу html, которая существует только с целью перенаправления пользователя на нужную страницу. Когда они нажмут кнопку «Назад», они приведут их на эту страницу перенаправления html, по существу поставив их в цикл.

0

Я использую эту технику ..

angular.element(document).ready(function() { 
 
    var State = History.getState(); 
 
    //........ now use State variable 
 
});

Надеется, что это поможет. :-)

0

здесь:

<script>  
history.pushState(null, null, document.URL); 
    window.addEventListener('popstate', function() { 
    history.pushState(null, null, document.URL); 
    location.reload(); 
}); 
</script> 
Смежные вопросы