Как отключить событие щелчка мыши браузера края с помощью JavaScript / jquery / Angularjs [duplicate]

Используйте thing[:]

>>> a = [1,2]
>>> b = a[:]
>>> a += [3]
>>> a
[1, 2, 3]
>>> b
[1, 2]
>>> 
108
задан tanguy_k 5 September 2014 в 11:44
поделиться

21 ответ

Существует множество причин, по которым отключение кнопки «Назад» на самом деле не работает. Лучше всего предупредить пользователя:

window.onbeforeunload = function() { return "Your work will be lost."; };

Эта страница перечисляет несколько способов, которыми вы могли попытаться отключить кнопку «Назад», но никто из них не гарантирован:

http://www.irt.org/script/311.htm

126
ответ дан Jerod Houghtelling 21 August 2018 в 02:46
поделиться
  • 1
    эй, спасибо, ваша ссылка работает лучше всего для меня, полный кредит для вас, поскольку обе функции работают так, как будто они перестают возвращаться, и мой таймер также работает хорошо. Благодаря вам, помогая мне, поскольку я новый разработчик php.thanks еще раз, а также спасибо к стековому потоку .... – Sawant Akshay 12 September 2012 в 06:27
  • 2
    @ user1656134 Если этот ответ помог вам, выберите это как правильный ответ. И, добро пожаловать в SO. – web-nomad 12 September 2012 в 06:53
  • 3
    он не работает на Firefox 37 – RezaRahmati 2 May 2015 в 08:08
  • 4
    Вы должны проверить свой PHP-код, если ответ уже отправлен и если его отклонить. – Sela Yair 19 June 2015 в 14:56
  • 5
    Стоит отметить, что в современных браузерах все изменилось: см. stackoverflow.com/questions/19926641/… – jazzbassrob 10 June 2016 в 12:25
  • 6
    – Jcc.Sanabria 22 April 2017 в 19:48

Я считаю, что идеальное решение на самом деле довольно простое, что я использовал уже много лет.

Он в основном назначает событие «onbeforeunload» окна вместе с текущим документом «mouseenter» / «mouseleave», события, поэтому предупреждение срабатывает только тогда, когда клики находятся за пределами области документа (которая может быть либо обратной, либо прямой кнопкой браузера)

$(document).on('mouseenter', function(e) { 
        window.onbeforeunload = null; 
    }
);

$(document).on('mouseleave', function(e) { 
        window.onbeforeunload = function() { return "You work will be lost."; };
    }
);
0
ответ дан Abdelqoddous Rifai 21 August 2018 в 02:46
поделиться

Попробуйте это, чтобы предотвратить кнопку backspace в IE, которая по умолчанию действует как «Назад»:

<script language="JavaScript">
$(document).ready(function() {
$(document).unbind('keydown').bind('keydown', function (event) {
    var doPrevent = false;


    if (event.keyCode === 8 ) {
        var d = event.srcElement || event.target;
        if ((d.tagName.toUpperCase() === 'INPUT' && 
             (
                 d.type.toUpperCase() === 'TEXT' ||
                 d.type.toUpperCase() === 'PASSWORD' || 
                 d.type.toUpperCase() === 'FILE' || 
                 d.type.toUpperCase() === 'EMAIL' || 
                 d.type.toUpperCase() === 'SEARCH' || 
                 d.type.toUpperCase() === 'DATE' )
             ) || 
             d.tagName.toUpperCase() === 'TEXTAREA') {
            doPrevent = d.readOnly || d.disabled;
        }
        else {

            doPrevent = true;
        }
    }

    if (doPrevent) {
        event.preventDefault();
    }

    try {
        document.addEventListener('keydown', function (e) {
               if ((e.keyCode === 13)){
                  // alert('Enter keydown');
                   e.stopPropagation();
                   e.preventDefault();
               }



           }, true);
        } catch (err) {}
    });
});
</script>
1
ответ дан Alex Salauyou 21 August 2018 в 02:46
поделиться
//"use strict";
function stopBackSpace(e) {
    var ev = e || window.event;
    var obj = ev.target || ev.srcElement;
    var t = obj.type || obj.getAttribute('type');

    var vReadOnly = obj.getAttribute('readonly');
    var vEnabled = obj.getAttribute('enabled');
    // null
    vReadOnly = (vReadOnly == null) ? false : vReadOnly;
    vEnabled = (vEnabled == null) ? true : vEnabled;
    // when click Backspace,judge the type of obj.

    var flag1 = ((t == 'password' || t == 'text' || t == 'textarea') && ((vReadOnly == true || vReadOnly == 'readonly') || vEnabled != true)) ? true : false;

    var flag2 = (t != 'password' && t != 'text' && t != 'textarea') ? true : false;

    if (flag2) {
        e.keyCode = 0;
        e.cancelBubble = true;
        return false;
    }
    if (flag1) {
        e.keyCode = 0;
        e.cancelBubble = true;
        return false;
    }
}
if (typeof($) == 'function') {
    $(function() {
        $(document).keydown(function(e) {
            if (e.keyCode == 8) {
                return stopBackSpace(e);
            }
        });
    });
} else {
    document.onkeydown = stopBackSpace;
}
-1
ответ дан Chauncey.Zhong 21 August 2018 в 02:46
поделиться
  • 1
    1 получить объект события 2. определить тип источника события, как условие суждения. 3. Когда попадание Backspace, тип источника события для пароля или одиночного, а свойство readonly для свойства true или enabled - false, то отказ ключа backspace. При нажатии Backspace источником события является пароль или одиночный, это отказ ключа backspace – Chauncey.Zhong 20 July 2017 в 10:03
  • 2
    Вопрос заключается в вопросе об использовании кнопки Back Navigation, а не клавиши backspace. – Quentin 21 August 2017 в 13:19

Как правило, это плохая идея, которая переопределяет поведение браузера по умолчанию.

Спрашивается также несколько похожих вопросов,

Вы не может фактически отключить кнопку назад. Однако вы можете использовать магию, используя свою логику, чтобы пользователь не мог перемещаться назад, что создаст впечатление, так как оно отключено. Вот как, посмотрите следующий фрагмент.

(function (global) { 

    if(typeof (global) === "undefined") {
        throw new Error("window is undefined");
    }

    var _hash = "!";
    var noBackPlease = function () {
        global.location.href += "#";

        // making sure we have the fruit available for juice (^__^)
        global.setTimeout(function () {
            global.location.href += "!";
        }, 50);
    };

    global.onhashchange = function () {
        if (global.location.hash !== _hash) {
            global.location.hash = _hash;
        }
    };

    global.onload = function () {            
        noBackPlease();

        // disables backspace on page except on input fields and textarea..
        document.body.onkeydown = function (e) {
            var elm = e.target.nodeName.toLowerCase();
            if (e.which === 8 && (elm !== 'input' && elm  !== 'textarea')) {
                e.preventDefault();
            }
            // stopping event bubbling up the DOM tree..
            e.stopPropagation();
        };          
    }

})(window);

Это в чистом JavaScript, поэтому он будет работать в большинстве браузеров. Он также отключит клавишу backspace , но клавиша будет нормально работать внутри полей input и textarea.

Рекомендуемая настройка:

Поместите этот фрагмент в отдельный сценарий и включить его на страницу, где вы хотите этого поведения. В текущей настройке он выполнит событие onload DOM, которое является идеальной точкой входа для этого кода.

Working DEMO!

Протестировано и проверено в следующие браузеры,

  • Chrome.
  • Firefox.
  • IE (8-11) и Edge.
  • Safari.
92
ответ дан Community 21 August 2018 в 02:46
поделиться
  • 1
    Я не понимаю, почему setTimeout. Если я только что добавлю #! на место и удалить setTimeout, он по-прежнему работает. – baraber 26 May 2015 в 19:54
  • 2
    да, это будет работать, но я, если мне нужно что-то вспомнить из памяти, когда у меня было это на первом месте ... поток не работал должным образом в хром, как в других браузерах. Хром возвратил пустой location.hash изначально, поэтому он заставил меня сделать это так. Там может быть больше улучшения, но 50 мс только один раз не стоил мне денег, поэтому я оставил его там. – Rohit416 27 May 2015 в 06:01
  • 3
    О, это была проблема памяти, спасибо :) Я использовал ваше решение, но заменил setInterval на обработчик .onhashchange. Работает отлично. Но у меня есть еще один вопрос: почему? & Quot; if (global.location.hash! = _Hash) & quot; ? Я думаю, что это условие может быть истинным все время, потому что window.location.hash всегда должен возвращать хэш с символом «#», а _hash никогда не будет содержать символ «#». Вы что-то помните? Это только защита, если браузер не возвращает символ «#» в location.hash? – baraber 27 May 2015 в 12:47
  • 4
    Я создал файл .js в соответствии с рекомендациями и включил js-файл в свой код, используя следующее: & lt; script src = & quot; ./ javascript / noback.js & gt; & gt; & lt; / script & gt; Но я все еще могу выполнить обратную связь (используя Safari). Что мне не хватает? Эта библиотека была добавлена ​​так же, как и другие библиотеки, которые я использую, поэтому включение является хорошим. – Tim 13 May 2017 в 11:42
  • 5
    Код был протестирован во всех упомянутых браузерах, и в последний раз, когда я проверил, он работает во всех. Я тестировал это сегодня в Safari, и он работал. Можете ли вы просто открыть рабочую демонстрационную ссылку в Safari и посмотреть, будет ли она работать в конце? – Rohit416 15 May 2017 в 07:24

Эта статья на jordanhollinger.com - лучший вариант, который я чувствую. Похоже на ответ Razor, но немного яснее. Код ниже; полные кредиты Иорданию Холлингеру:

Страница до:

<a href="/page-of-no-return.htm#no-back>You can't go back from the next page</a>

Страница без возврата JavaScript:

// It works without the History API, but will clutter up the history
var history_api = typeof history.pushState !== 'undefined'

// The previous page asks that it not be returned to
if ( location.hash == '#no-back' ) {
  // Push "#no-back" onto the history, making it the most recent "page"
  if ( history_api ) history.pushState(null, '', '#stay')
  else location.hash = '#stay'

  // When the back button is pressed, it will harmlessly change the url
  // hash from "#stay" to "#no-back", which triggers this function
  window.onhashchange = function() {
    // User tried to go back; warn user, rinse and repeat
    if ( location.hash == '#no-back' ) {
      alert("You shall not pass!")
      if ( history_api ) history.pushState(null, '', '#stay')
      else location.hash = '#stay'
    }
  }
}
7
ответ дан dav_i 21 August 2018 в 02:46
поделиться

    history.pushState(null, null, location.href);
    window.onpopstate = function () {
        history.go(1);
    };

5
ответ дан Eng Mahmoud El Torri 21 August 2018 в 02:46
поделиться
  • 1
    Хотя это может быть верным ответом, вы гораздо чаще помогаете другим, объясняя, что делает код и как он работает. Ответы только на код, как правило, получают меньше положительного внимания и не так полезны, как другие ответы. – Aurora0001 24 November 2016 в 17:13
  • 2

Я создаю одну HTML-страницу (index.html). Я также создаю один (механизм.js) внутри директории / script (script). Затем я размещаю весь контент внутри (index.html), используя теги формы, таблицы, span и div. Теперь вот трюк, который заставит обратно / вперед ничего не делать!

Во-первых, тот факт, что у вас есть только одна страница! Во-вторых, использование JavaScript с тегами span / div для скрытия и отображения содержимого на одной странице при необходимости через регулярные ссылки!

Inside 'index.html':

    <td width="89px" align="right" valign="top" style="letter-spacing:1px;">
     <small>
      <b>
       <a href="#" class="traff" onClick="DisplayInTrafficTable();">IN</a>&nbsp;
      </b>
     </small>
     [&nbsp;<span id="inCountSPN">0</span>&nbsp;]
    </td>

Внутри «mechan.js»:

    function DisplayInTrafficTable()
    {
     var itmsCNT = 0;
     var dsplyIn = "";
     for ( i=0; i<inTraffic.length; i++ )
     {
      dsplyIn += "<tr><td width='11'></td><td align='right'>" + (++itmsCNT) + "</td><td width='11'></td><td><b>" + inTraffic[i] + "</b></td><td width='11'></td><td>" + entryTimeArray[i] + "</td><td width='11'></td><td>" + entryDateArray[i] + "</td><td width='11'></td></tr>";
     }
     document.getElementById('inOutSPN').innerHTML = "" +
                                             "<table border='0' style='background:#fff;'><tr><th colspan='21' style='background:#feb;padding:11px;'><h3 style='margin-bottom:-1px;'>INCOMING TRAFFIC REPORT</h3>" + DateStamp() + "&nbsp;&nbsp;-&nbsp;&nbsp;<small><a href='#' style='letter-spacing:1px;' onclick='OpenPrintableIn();'>PRINT</a></small></th></tr><tr style='background:#eee;'><td></td><td><b>###</b></td><td></td><td><b>ID #</b></td><td></td><td width='79'><b>TYPE</b></td><td></td><td><b>FIRST</b></td><td></td><td><b>LAST</b></td><td></td><td><b>PLATE #</b></td><td></td><td><b>COMPANY</b></td><td></td><td><b>TIME</b></td><td></td><td><b>DATE</b></td><td></td><td><b>IN / OUT</b></td><td></td></tr>" + dsplyIn.toUpperCase() + "</table>" +
                                             "";
     return document.getElementById('inOutSPN').innerHTML;
    }

Он выглядит волосатым, но обратите внимание на имена и вызовы функций, встроенный HTML и вызовы id тега span. Это должно было показать, как вы можете вводить разные HTML-теги в те же теги span на той же странице! Как Back / Forward могут повлиять на этот дизайн? Это невозможно, потому что вы скрываете объекты и заменяете других на одной странице!

Как скрыть и отобразить? Здесь: Внутренние функции в «mechan.js» по мере необходимости используют:

    document.getElementById('textOverPic').style.display = "none"; //hide
    document.getElementById('textOverPic').style.display = "";     //display

Функции вызова «index.html» внутри ссылок:

    <img src="images/someimage.jpg" alt="" />
    <span class="textOverPic" id="textOverPic"></span>

и

    <a href="#" style="color:#119;font-size:11px;text-decoration:none;letter-spacing:1px;" onclick="HiddenTextsManager(1);">Introduction</a>

Надеюсь, у меня не было головной боли. Извините, если я сделал: -)

0
ответ дан hacker1033 21 August 2018 в 02:46
поделиться
<html>
<head>
    <title>Disable Back Button in Browser - Online Demo</title>
    <style type="text/css">
        body, input {
            font-family: Calibri, Arial;
        }
    </style>
    <script type="text/javascript">
        window.history.forward();
        function noBack() {
            window.history.forward();
        }
    </script>
</head>
<body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
    <H2>Demo</H2>
    <p>This page contains the code to avoid Back button.</p>
    <p>Click here to Goto <a href="noback.html">NoBack Page</a></p>
</body>
</html>
9
ответ дан informatik01 21 August 2018 в 02:46
поделиться

Очень простая и чистая функция, чтобы сломать обратную стрелку, не мешая странице после этого.

Преимущества:

  • Загружает мгновенно и восстанавливает исходный хеш, поэтому пользователь isn 't отвлекается по URL-адресу, заметно меняющимся.
  • Пользователь все равно может выйти, нажав 10 раз (это хорошо), но не случайно
  • Отсутствие пользовательских помех, например, других решений, использующих onbeforeunload
  • Он работает только один раз и не мешает дальнейшим манипуляциям с хэшем в случае, если вы используете это для отслеживания состояния
  • Восстанавливает оригинальный хеш, поэтому почти невидим.
  • ] Использует setInterval, поэтому он не прерывает медленные браузеры и всегда работает.
  • Чистый Javascript, не требует истории HTML5, работает повсеместно.
  • Unobrusive, просто и хорошо играет с другим кодом.
  • Не использует unbeforeunload, который прерывает пользователя с модальным диалогом.
  • Он просто работает без суеты.

Примечание: некоторые из других решений используют onbeforeunload. Пожалуйста, не используйте onbeforeunload для этой цели, который выдает диалог, когда пользователи пытаются закрыть окно, ударить по воротам и т. Д. Модалы типа onbeforeunload обычно подходят только в редких случаях, например, когда они действительно сделали изменения на экране и не сохранили их, но не для этой цели.

Как это работает

  1. Выполняется при загрузке страницы
  2. Сохраняет исходный хеш (если он находится в URL-адресе).
  3. Последовательно добавляет # / noop / {1..10} к хэшу
  4. Восстанавливает исходный хэш

Вот и все.

Использовать его за одну секунду

Чтобы развернуть, просто добавьте это где угодно на своей странице или в вашем JS:

]
<script>
/* break back button */                                                                        
window.onload=function(){                                                                      
  var i=0; var previous_hash = window.location.hash;                                           
  var x = setInterval(function(){                                                              
    i++; window.location.hash = "/noop/" + i;                                                  
    if (i==10){clearInterval(x);                                                               
      window.location.hash = previous_hash;}                                                   
  },10);
}
</script>
1
ответ дан Jamieson Becker 21 August 2018 в 02:46
поделиться

Этот код отключит кнопку «Назад» для современных браузеров, которые поддерживают API истории HTML5. При нормальных обстоятельствах нажатие кнопки «Назад» возвращается на один шаг назад на предыдущую страницу. Если вы используете history.pushState (), вы начинаете добавлять дополнительные подэтапы на текущую страницу. Как это работает, если вы будете использовать history.pushState () три раза, тогда начните нажимать кнопку «Назад», первые три раза он будет перемещаться назад на этих подэтапах, а затем в четвертый раз он вернется к на предыдущей странице.

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

history.pushState(null, null, 'no-back-button');
window.addEventListener('popstate', function(event) {
  history.pushState(null, null, 'no-back-button');
});
22
ответ дан Jeremy Warne 21 August 2018 в 02:46
поделиться
  • 1
    В любом браузере попробуйте страницу Refresh / Reload после этого, и вы застрянете на странице «Страница не найдена & quot; ошибка, поскольку она пытается найти страницу с именем no-back-button ... (Возможно, браузер также покажет no-back-button в адресной строке, что кажется уродливым.) Справедливости ради, это не единственное решение здесь, которое страдает от этого. Третий аргумент history.pushState() - это url и должен быть URL-адресом вашей текущей страницы: вместо этого используйте location.href. – JonBrave 17 December 2015 в 15:26
  • 2
    Это сработало для меня. Просто измените «no-back-button» на «window.top.location.pathname + window.top.location.search & quot; и он останется именем страницы, на которой вы находитесь, даже при обновлении – Steve 21 March 2016 в 17:28
  • 3
    Среди прочего, это работало для меня, upvote. См. stackoverflow.com/questions/19926641/… . – user2171669 14 December 2016 в 17:40
  • 4
    Благодарим вас за разъяснение – Jaimie Knox 22 January 2018 в 18:02
  • 5

Кажется, это сработало для нас, отключив кнопку «Назад» в браузере, а также кнопку возврата назад.

history.pushState(null, null, $(location).attr('href'));
    window.addEventListener('popstate', function () {
        history.pushState(null, null, $(location).attr('href'));
    });
2
ответ дан jgabb 21 August 2018 в 02:46
поделиться
  • 1
    кнопка обновления не работает правильно – Madhuka Dilhan 8 August 2017 в 11:29

Я столкнулся с этим, нуждаясь в решении, которое работало правильно и «красиво» в различных браузерах, , включая Mobile Safari (iOS9 во время публикации). Ни одно из решений не было совершенно правильным. Я предлагаю следующее (проверено на IE11, FireFox, Chrome & amp; Safari):

history.pushState(null, document.title, location.href);
window.addEventListener('popstate', function (event)
{
  history.pushState(null, document.title, location.href);
});

Обратите внимание на следующее:

  • history.forward() (мое старое решение) не работает на Mobile Safari - кажется, ничего не делает (то есть пользователь все равно может вернуться). history.pushState() работает над всеми из них.
  • третий аргумент history.pushState() является url . Решения, которые передают строку типа 'no-back-button' или 'pagename', похоже, работают нормально, пока вы не попробуете Refresh / Reload на странице, после чего возникает ошибка «Страница не найдена», когда браузер пытается найти страницу с этим как его Url. (Возможно, браузер также включит эту строку в адресную строку, если на странице, которая является уродливой.) location.href следует использовать для Url.
  • второй аргумент history.pushState() является [д2] название [/ д2]. Оглядываясь в Интернете, большинство мест говорят, что оно «не используется», и все решения здесь проходят null для этого. Однако, по крайней мере, в Mobile Safari, который помещает Url страницы в раскрывающийся список истории, пользователь может получить доступ. Но когда он добавляет запись для посещения страницы, как правило, она помещает в свой заголовок , что предпочтительнее. Таким образом, передача document.title для этого приводит к такому же поведению.
34
ответ дан JonBrave 21 August 2018 в 02:46
поделиться
  • 1
    Также работает над веб-интерфейсом Android в приложении Cordova – ferdil 7 October 2016 в 10:28
  • 2
    Это правильный ответ. Прекрасно работает на Chrome, IE 11, Firefox и Edge. – Concept211 19 April 2017 в 19:35
  • 3
    Это должен быть принятый ответ, это кросс-платформа и просто отлично работает. – calbertts 1 June 2017 в 15:23
  • 4
    в jsp servlet После отправки я обновляю страницу. страница не отображается (ошибка) – Madhuka Dilhan 9 August 2017 в 07:09
  • 5
    Лучшее решение до сих пор, но, вероятно, не работает в старых браузерах – j4n7 22 August 2017 в 13:29

Попробуйте это с легкостью:

history.pushState(null, null, document.title);
window.addEventListener('popstate', function () {
    history.pushState(null, null, document.title);
});
4
ответ дан Lakhan 21 August 2018 в 02:46
поделиться
<script>
window.location.hash="no-back-button";
window.location.hash="Again-No-back-button";//again because google chrome don't insert first hash into history
window.onhashchange=function(){window.location.hash="no-back-button";}
</script> 
56
ответ дан Mohsen Safari 21 August 2018 в 02:46
поделиться
  • 1
    Этот код также не позволяет мне идти вперед на хром. – Sanchitos 23 December 2013 в 21:29
  • 2
    Genius! Я использовал это, чтобы предотвратить случайный запуск кнопки «Назад», когда пользователь нажимает Backspace (например, на отключенные / readonly поля) в веб-приложении, где back / forward в действительности не имеет смысла. Подтвержденный отключает функцию «назад и вперед» (не сами кнопки), включая опцию контекстного меню; проверяется в IE8 через IE11, Chrome & amp; FF. – nothingisnecessary 29 January 2015 в 20:42
  • 3
    Это работает, но сбрасывает все данные, введенные в текстовые поля. Можно ли предотвратить очистку? – Somnium 6 May 2015 в 08:46
  • 4
    Он работал для меня на firefox, но не на хром (версия 36.0.1985.143) – baraber 26 May 2015 в 18:34
  • 5
    Это не работает для меня. Я использую Chrome версии 55 в Windows 10. Я поместил скрипт в несколько мест (начало заголовка, конец тела и т. Д.), И я все еще могу использовать кнопку «Назад», чтобы вернуться к предыдущей странице. – Victor Stoddard 18 January 2017 в 22:37
  • 6
    – robsonrosa 11 May 2017 в 03:18
<script language="JavaScript">
    javascript:window.history.forward(1);
</script>
1
ответ дан radu florescu 21 August 2018 в 02:46
поделиться
  • 1
    1. Вы javascript:, который вы написали, определяют метку JavaScript с именем & quot; javascript & quot ;. Я очень сомневаюсь, что вы намеревались это сделать; Я подозреваю, что вы смешиваете href=javascript:... с блоками JavaScript <script>. 2. language="JavaScript" перестало быть допустимым атрибутом <script> в HTML5. 3. Вышеуказанные 2 пункта не имеют большого значения; что history.forward(1) не работает в Mobile Safari (по крайней мере). Вместо этого используйте один из ответов history.pushState(). – JonBrave 17 December 2015 в 15:13

Так я могу это выполнить. Странное изменение window.location не получилось отлично в хроме и сафари. Случается, что location.hash не создает запись в истории для хрома и сафари. Таким образом, вам придется использовать pushstate. Это работает для меня во всех браузерах.

    history.pushState({ page: 1 }, "title 1", "#nbb");
    window.onhashchange = function (event) {
        window.location.hash = "nbb";

    };
10
ответ дан Sanchitos 21 August 2018 в 02:46
поделиться
  • 1
    Это не работает в IE9 и ниже, pushState не поддерживается. – Alex 11 April 2014 в 00:51
  • 2
    Отлично. Это хороший подход и работает практически во всех последних браузерах. – Venugopal M 3 February 2015 в 12:40
  • 3
    Отлично работает в более поздних версиях IE. Просто поместите прямо в документ. Уже: $(document).ready(function () { .... }); – Oppa Gingham Style 18 June 2015 в 19:28
  • 4
    Имейте в виду, что вы должны добавить свой текущий uri до & quot; # nbb & quot ;. то есть счет # nbb " – Mladen Janjetovic 18 September 2015 в 10:18

Вы просто не можете и не должны этого делать. Однако, но это может быть полезно

<script type = "text/javascript" >
history.pushState(null, null, 'pagename');
window.addEventListener('popstate', function(event) {
history.pushState(null, null, 'pagename');
});
</script>

Работает на моем хром и firefox

-1
ответ дан Shailendra Sharma 21 August 2018 в 02:46
поделиться
   <script src="~/main.js" type="text/javascript"></script>
    <script type="text/javascript">
        window.history.forward();
        function noBack() { window.history.forward(); } </script>
1
ответ дан user3789888 21 August 2018 в 02:46
поделиться

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

В случае, когда страница действительно обновилась, что сделает кнопку (теоретически) доступной; Затем я смог отреагировать на загрузку страницы, что заказ уже отправлен и перенаправлен также.

0
ответ дан Valamas 21 August 2018 в 02:46
поделиться
1
ответ дан Surajit Mitra 31 October 2018 в 21:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: