मुझे अपने एकल पृष्ठ एप्लिकेशन में ब्राउज़र के बैक बटन को अक्षम करने की आवश्यकता है। मैंने ऑनशैशचेंज या window.history.forward जैसी विधियों का उपयोग करने का प्रयास किया लेकिन वे काम नहीं करते हैं (कारण यह हो सकता है कि यूआरएल यहां नहीं बदला जा सकता है) कृपया मदद करें! धन्यवाद।एक पेज एप्लिकेशन के लिए ब्राउज़र बैक बटन अक्षम करें
उत्तर
मैं एक निर्माण AngularJS में काम करते हैं एकल पृष्ठ ऐप और मैं ब्राउज़र के बैक बटन को अक्षम या रोकना चाहता था, क्योंकि मेरे ऐप में मेरे ऐप में सभी नेविगेशन के लिए बटन और एंकर हैं।
मैंने कई कोड खोजे और परीक्षण किए, और ब्राउज़र के बैक बटन को रोकने के लिए यह आसान है और निम्नलिखित कोड मेरे लिए काम करता है।
window.onpopstate = समारोह (ई) { window.history.forward (1); }
इतिहास पहले history.back()
window.onpopstate
निष्पादित किया जाता है का पता लगाता है, तो इस समय किसी भी वापस करने के बाद या इतिहास में आगे onpopstate का पता लगाया गया घटना।
मुझे नहीं लगता कि बैक बटन को अक्षम करना वास्तव में काम करेगा। इसके लिए कई कारण हैं लेकिन this देखें। आपका सबसे अच्छा समाधान हो फिर भी, आप यह इतना है कि बटन उपलब्ध नहीं है या एक ही पृष्ठ लोड करने के लिए जारी है बना सकते हैं,
window.onbeforeunload = function() { return "You will leave this page"; };
इसका प्रयास किया। यह मेरे आवेदन में काम नहीं करता है क्योंकि ऑनबर्नलोड लोड ईवेंट को वापस बटन पर नहीं निकाल दिया जाता है। – Bhumika107
आप तकनीकी रूप से किसी के ब्राउज़र पर वापस बटन अक्षम नहीं कर सकता का उपयोग कर उपयोगकर्ता चेतावनी देगा।
आप इसे यहाँ की जांच कर सकते Disabling the Back Button
मैं उसी पृष्ठ को पुनः लोड नहीं कर सकता क्योंकि सत्र शामिल हो रहा है इसलिए जटिलताओं को शामिल किया गया है। मैं बटन को अनुपलब्ध कैसे बना सकता हूं? – Bhumika107
आप जावास्क्रिप्ट [अक्षम] (http://www.htmlgoodies.com/tutorials/buttons/article.php/backbutton.html) – Shekhar
का उपयोग कर ऐसा कर सकते हैं इस संदेश के अलावा इस लिंक पर कुछ भी नहीं मिला: हम HTMLGoodies.com पर आपके द्वारा मांगा गया पृष्ठ ढूंढने में असमर्थ थे। – Bhumika107
आप वापस बटन पर क्लिक करें पर एक ही पृष्ठ अनुप्रेषित कर सकते हैं, अपने पृष्ठ ताज़ा हो जाएगा, लेकिन हर बार जब आप एक ही पृष्ठ पर हो जाएगा
जैसा कि मैंने उपरोक्त उत्तर में कहा था, मैं पृष्ठ को रीफ्रेश नहीं कर सकता। – Bhumika107
यदि रीफ्रेश स्वीकार्य था, तो यह कैसे करेगा? पहली बार बैक-बटन ईवेंट कैसा पकड़ता है? – Paul
बेहतर तरीका एक पृष्ठ पृष्ठ बना रहा है और आवश्यकता के अनुसार एक ही पृष्ठ को दिखाएं और छुपाएं। AJAX को कॉल करें कभी भी अगले पृष्ठ पर fwd। –
मुझे लगता है कि "onpopstate" काम न करता है, तो उपयोगकर्ता
सिर्फ
window.onbeforeunload = function() { window.history.forward(1); };
का उपयोग करें या यदि u उपयोगकर्ता
window.onbeforeunload = function() { return "Back button is not available!"; window.history.forward(1); };
चेतावनी चाहते आप AngularJS का उपयोग कर रहे हैं क्लिक करें जारी रहती है , निम्नलिखित कोड चाल करना चाहिए। आप फ़ाइल या फ़ाइल जहाँ आप अपने सभी निर्भरता
var myApp = angular.module('myApp', ['ngMask', 'ngRoute', 'ngAnimate', 'ngSanitize', 'ngTouch', 'ngCookies', 'ngMessages', 'ui.router', 'ui.grid', 'ui.directives', 'ui.filters', 'ui.bootstrap', 'angularUtils.directives.dirPagination']);
myApp.run(function($rootScope, $route, $location) {
var allowNav = false;
var checkNav = false;
$rootScope.$on('$stateChangeSuccess', function (event, toState, toStateParams, fromState, fromStateParams) {
allowNav = checkNav;
checkNav = true;
});
$rootScope.$on('$locationChangeStart', function (event, next, current) {
// Prevent the browser default action (Going back)
if (checkNav) {
if (!allowNav) {
event.preventDefault();
} else {
allowNav = false;
}
}
});
});
इंजेक्षन मैं एक अलग परिदृश्य में जहाँ हम कुछ पन्नों को ब्लैकलिस्ट करना चाहता था था app.js लिए इस कोड को जोड़ने के लिए। अधिकांश एसपीए को बैक बटन और कुछ पेजों का उपयोग करने की इजाजत देने की अनुमति नहीं है। मैंने पॉपस्टेट की कार्यक्षमता को ओवरराइड करने के लिए एक सेवा बनाई है। हालांकि मैं आगे बढ़ने के साथ एक अजीब मुद्दे में भाग गया।
import { RouteAddress } from 'app/common/constants/routes.constants';
import { Injectable } from '@angular/core';
import { StringUtilsService } from 'app/common/services/utilities/string-utils.service';
@Injectable()
export class LocationStrategyService {
private static shouldSkip = false;
// Array of route urls that we can't go back to.
private static blackListed = [
RouteAddress.ScreeningStepTwoCreditAvailability,
RouteAddress.ScreeningStepTwo];
constructor() {
window.onpopstate = this.overridingPopState;
}
overridingPopState(event: any) {
// This was having issue scoping
const isBlackListed = (navigatingTo: string): boolean => {
navigatingTo = navigatingTo.split('?')[0];
const pathFound = LocationStrategyService.blackListed.find((route) => navigatingTo.endsWith('/' + route));
return pathFound !== undefined && pathFound.length > 0;
}
// have black listed route and determing if able to go back
if (!LocationStrategyService.shouldSkip && isBlackListed(event.currentTarget.location.pathname)) {
window.history.forward();
// Protecting against a going forward that will redirect
LocationStrategyService.shouldSkip = isBlackListed(window.location.pathname);
} else {
LocationStrategyService.shouldSkip = false;
}
}
}
फिर अपने AppComponent निर्माता में LocationStrategyService जोड़ने और इसे शुरू पर यह कॉल करेंगे।
import { LocationStrategyService } from 'app/common/services/utilities/location-strategy.service';
export class AppComponent {
constructor(
private locationStrategyService: LocationStrategyService) {}
}
- 1. ब्राउज़र "बैक" बटन बनाम jQuery- एनिमेटेड पेज
- 2. ब्राउज़र बैक बटन
- 3. क्रोम बैक बटन पेज रीफ्रेश करें - एएसपीनेट
- 4. ब्राउज़र बैक बटन की पुष्टि करें अन्यथा पेज
- 5. बैक बटन (ब्राउज़र व्यवहार)
- 6. ब्राउज़र बैक बटन एमवीसी अनुप्रयोग
- 7. लॉग आउट के बाद ब्राउज़र बैक बटन
- 8. एंड्रॉइड - डिवाइस बैक बटन अक्षम करें
- 9. AJAX और ब्राउज़र बैक बटन
- 10. एक-पेज वेब एप्लिकेशन के लिए उचित बैक-एंड?
- 11. ब्राउजर बैक बटन
- 12. अक्षम बटन एज ब्राउज़र
- 13. एएसपी.नेट ब्राउज़र बैक बटन के लिए "वेब पेज की समयसीमा समाप्त हो गई है" (पोस्ट बैक के बाद)
- 14. बैक बटन
- 15. पेज इतिहास - बैक बटन मौजूद है?
- 16. मैं एक पृष्ठ पर एंड्रॉइड बैक बटन कैसे अक्षम कर सकता हूं और हर दूसरे पेज
- 17. पोस्ट-रीडायरेक्ट के बाद बैक बटन व्यवहार-
- 18. नियंत्रण या जावास्क्रिप्ट के साथ अक्षम ब्राउज़र बैक बटन या जावास्क्रिप्ट के साथ AngularJS
- 19. एंड्रॉइड DroidGap बैक बटन को अक्षम करने
- 20. बैक बटन
- 21. एक्शनबैर बैक बटन और एंड्रॉइड बैक बटन
- 22. लॉगआउट के बाद कोडइग्निटर बैक बटन
- 23. बैक बटन
- 24. बैक बटन
- 25. ब्राउजर बैक बटन
- 26. एक "बैक" बटन प्रदर्शित करें, केवल अगर कोई बैक (एमवीसी)
- 27. एमवीसी बैक बटन IE9
- 28. jquery एक विशिष्ट समय के लिए एक बटन अक्षम करें
- 29. सफारी और क्रोम बैक बटन
- 30. इनपुट प्रकार - बैक बटन?
बहुत बहुत धन्यवाद। यह अच्छी तरह से काम किया। क्या रीफ्रेश बटन को अक्षम करने का कोई तरीका भी है? – Bhumika107
यह ठीक काम कर रहा है लेकिन किसी अन्य मामले में मैं पिछले पृष्ठ के लिए बटन क्लिक करके window.history.back() का उपयोग कर रहा हूं। यह एक ही पृष्ठ पर भी रह रहा है, पीछे नहीं जा रहा है। मैं कैसे हल कर सकता हूं? –
मैंने इस दृष्टिकोण का उपयोग किया लेकिन आवेदन की स्थिति बदल दी गई है लेकिन यूआरएल अपरिवर्तित है! कोई उपाय ? – Rachmaninoff