ব্রাউজারের পিছনের বোতামটি অক্ষম করুন


98

কীভাবে ব্রাউজারের ব্যাক বোতামটি (ব্রাউজার জুড়ে) অক্ষম করবেন?


92
আপনি আপনার ব্যবহারকারীদের কম্পিউটার বা তাদের ব্রাউজারগুলির মালিক নন।
ইনস্ট্যান্স হান্টার

47
+1 কারণ যদিও আমি সম্মত হয়েছি যে ব্রাউজারগুলির ব্যাক বোতামটি নিষ্ক্রিয় করা 'খারাপ অভ্যাস', তবুও আমি নিজেই প্রশ্নটিকে হ্রাস করার কোনও কারণ দেখতে পাচ্ছি না, উত্তরটি দেওয়ার এবং ইমো করার উপায়টি কেন তা ব্যাখ্যা করার জন্য।
ক্রিস্টোফিড

45
আমরা কেন এই প্রশ্নের শত্রুতা করছি? আমরা জানি যে, এই প্রশ্নটি জিজ্ঞাসা করা ব্যক্তি ইতিমধ্যে জানে যে এটি দরিদ্র ব্যবহারযোগ্যতা অনুশীলন, তবে কেবল প্রয়োজনীয়তাগুলি অনুসরণ করছে, অথবা তারা কেবল কিছু শিখতে চায়। কেন আমরা কেবল এটি একটি অনুমানমূলক প্রশ্ন, এবং জবাব দিচ্ছি না যদি আমরা এই ধরণের জিনিসটি করতাম তবে আমরা কীভাবে এটি করব?
থোমাস্রুটার

5
কিছু কিছু করার কোনও ইচ্ছা না করেই কিছু করা উচিত নয়। এর জন্য একটি অ-আলোচনাযোগ্য প্রয়োজন হ'ল তাত্ক্ষণিকভাবে বলছে যে প্রয়োজনীয়তা লোকেরা সেট করেছিল যার ব্যবসার কোনও সেট নেই, যা অনেক বড় সমস্যা।
অনাকাটা

37
হ্যাঁ, আমি এখন পর্যন্ত সবচেয়ে দুর্দান্ত মন্তব্যটি লিখেছি, তবে আমি দুর্ঘটনাক্রমে পিছনের বোতামটি চাপলে তা হারিয়ে ফেলেছিলাম।
ড্যান উইলিয়ামস

উত্তর:


26

এই প্রশ্নের খুব এই অনুরূপ এক ...

এটি কাজ করার জন্য আপনাকে ক্যাশে জোর করতে হবে। পিছনে আপনার পৃষ্ঠা কোডে নীচের কোডটি রাখুন।

Page.Response.Cache.SetCacheability(HttpCacheability.NoCache)

14
নোট করুন যে পৃষ্ঠাটি আন-ক্যাশেযোগ্য করা ওপি যা চেয়েছিল তা অর্জন করে না: পিছনের বোতামটি ব্যবহার করে ভিজিটিং পৃষ্ঠাগুলি অক্ষম করতে। এমনকি যদি কোনও ব্রাউজার পিছনের বোতামটি ব্যবহার করার সময় নো-ক্যাশে মানা করে (কোন ব্রাউজারগুলি এএফএআইকি করতে বাধ্য হয় না) তারা এখনও সেই পৃষ্ঠা পুনরায় লোড করার একটি উপায় সরবরাহ করে (সাধারণত সতর্কতা সংলাপ দেখানোর পরে)। সুতরাং আপনি যদি সত্যই আপনার ব্যবহারকারীদের সেই পৃষ্ঠাটিতে ফিরে না যেতে চান তবে এটি আরও খারাপ হতে পারে, কারণ এই পৃষ্ঠার অনুরোধটি মূল সার্ভারে যাওয়ার জন্য এটির পথটি তৈরি করতে হবে। পৃষ্ঠাটি পুনর্বিবেচিত হয়েছে তা সনাক্ত করতে আপনার কিছু সার্ভার-সাইড প্রয়োজন হবে। শিরোনাম উপেক্ষা করা যেতে পারে।
থোমাসরুটটার

60

প্রত্যাশিত ব্রাউজার আচরণটি অক্ষম করবেন না।

আপনার পৃষ্ঠাগুলি ব্যবহারকারীরা দু'এক পৃষ্ঠা বা দু'বার ফিরে যাওয়ার সম্ভাবনাটি পরিচালনা করে; তাদের সফ্টওয়্যার পঙ্গু করার চেষ্টা করবেন না।


6
ধন্যবাদ বন্ধু, জিনিসটি হ'ল আপনি যদি একটি এজেএক্স অ্যাপ্লিকেশন তৈরি করে থাকেন তবে ব্যাকটি বোতামটি অক্ষম করার জন্য, বা আপনার অ্যাপ্লিকেশনটির মধ্য দিয়ে যাওয়া এবং প্রতিটি সম্ভাব্য দৃশ্যের জন্য উপযুক্ত ব্যাক ক্রিয়াকলাপ সম্পাদনের মধ্যে ব্যয়-বেনিফিট ট্রেড অফ, নিষ্ক্রিয় করার দিকে ঝুঁকতে পারে পিছনে বোতাম দুটি আরও আকর্ষণীয় বিকল্প হচ্ছে।
ডেভিড.বারখুইজেন

আমি জোনাথনের সাথে একমত হব, বিশেষত বর্তমানে ইন্টারনেটে বন্যার পুনঃনির্দেশিত ম্যালওয়ার অ্যাডভার্টগুলির বন্যার সাথে, তারা ইতিমধ্যে সতর্কতা সিস্টেমটিকে অপব্যবহার করে তাদের পৃষ্ঠাগুলি আপনাকে তাদের পৃষ্ঠায় লক করার ক্ষমতা না দিয়ে তাদের পৃষ্ঠাগুলি ছেড়ে দেওয়া কঠিন করে
তোলে

46

আমি সামান্য হ্যাক নিয়ে এসেছি যা জাভাস্ক্রিপ্ট ব্যবহার করে পিছনের বোতামটি অক্ষম করে। আমি এটি ক্রোম 10, ফায়ারফক্স 3.6 এবং আই 9 তে পরীক্ষা করেছি:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<title>Untitled Page</title>
<script type = "text/javascript" >
function changeHashOnLoad() {
     window.location.href += "#";
     setTimeout("changeHashAgain()", "50"); 
}

function changeHashAgain() {
  window.location.href += "1";
}

var storedHash = window.location.hash;
window.setInterval(function () {
    if (window.location.hash != storedHash) {
         window.location.hash = storedHash;
    }
}, 50);


</script>
</head>
<body onload="changeHashOnLoad(); ">
Try to hit the back button!
</body>
</html>

এটা কি করছে?

মন্তব্য থেকে:

এই স্ক্রিপ্টটি এই সত্যটি উপস্থাপন করে যে ব্রাউজারগুলি ব্রাউজিং ইতিহাসের অংশ হিসাবে ইউআরএলে "#" সাইন করার পরে যা কিছু আসে তা বিবেচনা করে। এটি যা করে তা হ'ল: পৃষ্ঠাটি লোড হয়ে গেলে, "# 1" ইউআরএলে যুক্ত করা হয়। 50 মিটার পরে "1" সরানো হয়। যখন ব্যবহারকারী "পিছনে" ক্লিক করেন, ব্রাউজারটি "1" অপসারণের পূর্বে যা ছিল তা URL পরিবর্তন করে, তবে এটি একই ওয়েব পৃষ্ঠা, তাই ব্রাউজারটি পৃষ্ঠাটি পুনরায় লোড করার প্রয়োজন হয় না। - ইয়োসি শাশো


4
দেখে মনে হচ্ছে এই স্ক্রিপ্টটি URL টি "#" যুক্ত করে যখন পৃষ্ঠাটি লোড হয় এবং প্রতি 50 মিমি ইউআরএলটিতে এটি 1 যুক্ত করে।
ashes999

6
এই স্ক্রিপ্টটি এই সত্যটি উপস্থাপন করে যে ব্রাউজারগুলি ব্রাউজিং ইতিহাসের অংশ হিসাবে ইউআরএলে "#" সাইন করার পরে যা কিছু আসে তা বিবেচনা করে। এটি যা করে তা হ'ল: পৃষ্ঠাটি লোড হয়ে গেলে, "# 1" ইউআরএলে যুক্ত করা হয়। 50 মিটার পরে "1" সরানো হয়। যখন ব্যবহারকারী "পিছনে" ক্লিক করেন, ব্রাউজারটি "1" অপসারণের পূর্বে যা ছিল তা URL পরিবর্তন করে, তবে এটি একই ওয়েব পৃষ্ঠা, তাই ব্রাউজারটি পৃষ্ঠাটি পুনরায় লোড করার প্রয়োজন হয় না।
ইয়োসি শশো

4
নোট করুন যে ইউআরএল দু'বার পরিবর্তিত হয়েছে: আমরা কেবল এটি প্রয়োগের ছদ্মবেশ ধারণ করার জন্যই করি, সুতরাং কেউই দেখতে পাবে না যে আমরা "1" যুক্ত করেছি। সুতরাং প্রকৃতপক্ষে যখন ব্যবহারকারী ফিরে ক্লিক করে, পৃষ্ঠাটি একটি মুহুর্তের জন্য "# 1" পুনরায় যুক্ত করে এবং এটি আবার সরিয়ে দেয়। বিটিডাব্লু - এটি "1" হতে হবে না, এটি কোনও স্ট্রিং হতে পারে।
ইয়োসি শশো

4
এটির সাথে সমস্যাটি হ'ল পৃষ্ঠাটি প্রতি 50 এমএসে শীর্ষে স্ক্রোল করছে। আপনার যদি উইন্ডো উচ্চতার চেয়ে বড় ফর্ম থাকে তবে এটি ফর্মের মানগুলি পূরণ করা অসম্ভব করে দেবে।
3komma14

অনেক ধন্যবাদ. এটি আমার কাছে থাকা একটি জাভাস্ক্রিপ্ট ভিত্তিক বিশেষত ইন্টারেক্টিভ পৃষ্ঠার জন্য অত্যন্ত দরকারী, যেখানে বাম এবং ডানদিকে স্ক্রোলিং মেকানিকের অংশ। এটি ম্যাক ওএস এক্সের স্ক্রোল অঙ্গভঙ্গির সমস্যাটি দুর্ঘটনাক্রমে কোনও পৃষ্ঠা "ফিরিয়ে" নেওয়ার ক্ষেত্রে সহায়তা করে (এটি ইতিমধ্যে সমস্তভাবে স্ক্রোল করা থাকলে সহজেই করা যায়)।
আয়ান কলিন্স

34

অন্যরা "এটি করবেন না" বলার দৃষ্টিভঙ্গি নিয়েছে তবে এটি পোস্টারের প্রশ্নের সত্যই উত্তর দেয় না। আসুন কেবল ধরে নেওয়া যাক যে সবাই জানেন যে এটি একটি খারাপ ধারণা, তবে এটি কীভাবে হয় তা সম্পর্কে আমরা আগ্রহী ...

আপনি কোনও ব্যবহারকারীর ব্রাউজারে পিছনের বোতামটি অক্ষম করতে পারবেন না, তবে আপনি এটি তৈরি করতে পারেন যাতে আপনার অ্যাপ্লিকেশনটি ব্রেক হয়ে যায় (ব্যবহারকারী একটি ত্রুটি বার্তা প্রদর্শন করে, ব্যবহারকারীকে আরম্ভ করার প্রয়োজন হয়) যদি ব্যবহারকারী ফিরে যায়।

এটি করার জন্য আমি যে পদ্ধতিটি দেখেছি তা হ'ল অ্যাপ্লিকেশনটির মধ্যে এবং প্রতিটি ফর্মের মধ্যে প্রতিটি URL- এর একটি টোকন পাস করা। টোকেনটি প্রতিটি পৃষ্ঠায় পুনরায় জেনারেট হয় এবং ব্যবহারকারী একবার নতুন পৃষ্ঠা লোড করলে পূর্ববর্তী পৃষ্ঠাগুলির কোনও টোকেন অবৈধ হয়।

যখন ব্যবহারকারী কোনও পৃষ্ঠা লোড করেন, পৃষ্ঠাটি কেবলমাত্র তখনই প্রদর্শিত হবে যদি সঠিক টোকেন (যা পূর্ববর্তী পৃষ্ঠায় সমস্ত লিঙ্ক / ফর্মগুলিতে দেওয়া হয়েছিল) এতে পাস করা হয়েছিল।

আমার ব্যাংক যে অনলাইন ব্যাংকিং অ্যাপ্লিকেশন সরবরাহ করে তা হ'ল এটি। আপনি যদি মোটামুটি পিছনের বোতামটি ব্যবহার করেন তবে আর কোনও লিঙ্ক কাজ করবে না এবং কোনও পৃষ্ঠা পুনরায় লোড করা যাবে না - পরিবর্তে আপনি একটি নোটিশ দেখতে পেয়েছেন যে আপনি ফিরে যেতে পারবেন না এবং আপনাকে আবার শুরু করতে হবে।


4
আমার ব্যাংক একটি পৃথক পদ্ধতি গ্রহণ করে - এটি পুরোপুরি সেশনটি সমাপ্ত করে। পিছনের বোতামটি ব্যবহার করা লগ আউট সমতুল্য।
রবিজি

এটি একই পদ্ধতির মতো শোনাচ্ছে। তারা সনাক্ত করছে যে আপনি ফিরে গিয়ে একটি ত্রুটির শর্তটি ফেলে দিয়েছেন।
thomasrutter

টোকেন সমাধানের সাথে জুমলাও কাজ করে, প্রতিটি পৃষ্ঠা এবং প্রতিটি ফর্ম দ্বারা একটি টোকেন উত্পন্ন হয়, প্রকৃতপক্ষে এই অনুশীলন সম্পর্কে কিছু সমস্যা রয়েছে যেমন "যখন ব্যবহারকারী কোনও পৃষ্ঠায় খুব বেশি থাকে এবং তার টোকেনের মেয়াদ শেষ হয়"
মাত্তিও বোননি 'পোর্তিয়ার'

4
আমাকে ভুল করবেন না, এই অনুশীলন নিয়ে প্রচুর সমস্যা রয়েছে। আমি এটির প্রস্তাব দিচ্ছি না, আমি বলছি এটি সাধারণত কীভাবে অর্জন করা হয়। আপনি পূর্ববর্তী পৃষ্ঠা থেকে প্রত্যাশিত লিঙ্কগুলির মধ্যে একটি অনুসরণ করেননি এবং এরপরে সেশনটি সমাপ্ত করে বা ত্রুটি দেখানোর জন্য তারা পৃষ্ঠাগুলির মধ্যে অনন্য টোকেনগুলি পাস করে। এটি পিছনের বোতামটি ভেঙে যায়, এটি ট্যাবড ব্রাউজিংকে ভেঙে দেয়, এটি বুকমার্কিং এবং / অথবা লিংকগুলি ভাগ করে নিয়ে যায় এবং আরও অনেক কিছু - এবং এটি আসলে কোনও সমস্যার সমাধান করে না।
থোমাস্রুটার

যদি সমস্যাটি হ'ল যদি তথ্যটি হারিয়ে যায় বা ইতিমধ্যে ব্রেক হয়ে যায় যদি ব্যবহারকারী ব্যাক বোতামটি ব্যবহার করার চেষ্টা করে তবে ব্যাক বোতামটি অক্ষম করা আরও পছন্দসই পদ্ধতির হবে।
পোলোহোলসেট

10

আমি নিজেই উত্তরটির সন্ধান করার সময়, "সেরা অনুশীলন" হ'ল .... পুরানো ... ঠিক যেমন ব্রাউজারগুলি হয় ((সত্যিই ব্রাউজারগুলি কুৎসিত জীবাশ্মগুলি হয়)

সর্বোত্তম / নিরাপদ সমাধান হ'ল ব্রাউজারগুলির এমন একটি পদ্ধতি / অনুরোধ কার্যকর করা যেখানে ব্যবহারকারী পৃষ্ঠাটিকে ইন্টারফেস নিয়ন্ত্রণের ক্ষমতা দিতে পারে।

কেন? কারণ আমার বর্তমান প্রকল্পের জন্য আমি একটি 100% জাভাস্ক্রিপ্ট নির্মিত এবং নিয়ন্ত্রিত ইন্টারফেস তৈরি করছি .. এবং পৃষ্ঠার পরিবর্তন নেই বলে আমার প্রকল্পে পিছনে বোতামটির কোনও স্থান নেই। (যেমন রক্তাক্ত দ্রুত এবং একটি পৃষ্ঠার ঝলকানো একটি রিফ্রেশের কারণে .. ঠিক বাস্তব প্রয়োগের মতো!)

ইন্টারফেসটি কেন "হাইজ্যাক" করার ক্ষমতা নেই তা আমি জানি এবং আমি এটি বুঝতে পারি। তবে কমপক্ষে আমাদের ব্রাউজার থেকে এটি অনুরোধ করার ক্ষমতা থাকা উচিত! হাইজ্যাকের ঝুঁকিগুলি ছাড়াই এখন সত্যিই এটি "সেরা অনুশীলন" হবে।

তবে ব্রাউজারগুলি ব্রাউজার হচ্ছে .. আমি আশা করি না যে এই প্রসঙ্গে বাইরে থেকে বেরিয়ে আসা কিছু হবে anything


4
100% একমত নন, যদিও এই কার্যকারিতাটি 99% ওয়েব বিকাশকারীদের পক্ষে দুর্দান্ত হবে, যা এই 1% রেখে দেয় যা এই কার্যকারিতাটির অপব্যবহার করবে, এটি আমার মতে কোনও ওয়েবসাইটকে আপনার ইন্টারনেট ব্যবহারের ক্ষমতা নিয়ন্ত্রণ করার অনুমতি দেওয়া খুব বিপজ্জনক is ক্রস ডোমেন পুনর্নির্দেশ স্ক্রিপ্ট হয় নিষিদ্ধ বা স্ক্রিপ্ট চালানোর অনুমতি দেওয়া হয়েছে কিনা তা নিশ্চিত করার অনুমতি দেওয়া প্রয়োজন কেবল এই ধরণের অপব্যবহারের কারণে
মাইকেটি

@ মাইকটি - আমার নিজের নির্দিষ্ট অ্যাপ্লিকেশন পৃষ্ঠাগুলিতে নেভিগেট করার সময় "ব্যাক" বোতামটি কীভাবে অক্ষম করবেন যেভাবে কারও ইন্টারনেট ব্যবহারের ক্ষমতা বাধা দেওয়া হবে?
পোলোহোলসেট

@ পোলোহোলসেট আপনার যদি ব্রাউজারগুলির ব্যাক বোতামটি অক্ষম করার দক্ষতা থাকে তবে প্রত্যেকের মতোই, আপনাকে যা যা করতে চান না এমন পৃষ্ঠায় আপনাকে প্রেরণ করার জন্য আপনার কেবল পুনঃনির্দেশের প্রয়োজন এবং যদি তারা ব্রাউজারে আপনার নেভিগেশন নিয়ন্ত্রণগুলি অক্ষম করতে পারে তবে তুমি কি পালাতে পার? আমি নিশ্চিত যে আপনি "আপনার একটি ভাইরাস পৃষ্ঠা আছে" জুড়ে এসেছেন যেখানে তারা আপনাকে অস্তিত্বহীন ভাইরাস অপসারণ করতে তাদের ভাইরাস ইনস্টল করার অনুরোধ জানায় এখন সেই সাইটটি কল্পনা করুন যেখানে তারা আপনাকে বাস্তবে ছেড়ে যেতে বাধা দিতে পারে
মাইকটি

@ মাইকটি - আমি নেভিগেশন উইন্ডোতে অন্য কোনও url প্রবেশ করতে পারি, আমি একটি ট্যাব বন্ধ করতে পারি, জাভাস্ক্রিপ্ট অক্ষম করতে পারি। কথাটি কেউ পারে না কি না, কারণ আপনি পারবেন, আমি পারি, যে কেউ পারে। নীতি হিসাবে, লোকেরা বলছে যে আপনি যদি পারেন তবে তা করা উচিত নয়। আমরা কীভাবে একটি ব্রাউজার ডিজাইন করব সে বিষয়ে কথা বলছি না, আমরা কীভাবে একটি অ্যাপ্লিকেশন প্রোগ্রাম করি সে সম্পর্কে কথা বলছি।
পোলোহোলসেট

@ পোলোহোলসেট আপনি যদি নেভিগেশনটি লক করতে চলেছেন তবে আপনাকে কেবল পিছনের বোতামের চেয়ে বেশি লক আউট করতে হবে, কারণ ব্রাউজারের ইতিহাস এবং টাইপ করা ইউআরএলগুলি ব্যবহারকারীদের আপনার কাজের প্রবাহকে বাইপাস করার উপায় সরবরাহ করবে। এবং যেমন আমি বলেছিলাম যে আপনি বা আমি কী করবো সে সম্পর্কে আমরা কথা বলছি না তবে দূষিত উপাদান, যদি আপনার ব্রাউজারটি নিয়ন্ত্রণে থাকা কোনও দূষিত ওয়েবসাইটকে রোধ করার একমাত্র উপায় হ'ল আপনার ব্রাউজারের সমস্ত জেস অক্ষম করা হয় তবে আপনি ইন্টারনেটটি ভেঙে ফেলেছেন আধুনিক ওয়েব লিখিত বিষয়বস্তু সরবরাহ করতে স্ক্রিপ্টগুলির উপর নির্ভর করে, আপনি যদি আপনার ব্যবহারকারীদের উপর এতটা নিয়ন্ত্রণ চান তবে আপনার ওয়ার্কফ্লো পরিবেশন করতে একটি অ্যাপ তৈরি করতে পারেন
মাইকেট

4

আমি একই প্রশ্নের সন্ধান করছি এবং আমি একটি সাইটে নিম্নলিখিত কোড পেয়েছি। এটিকে এখানে ভাগ করে নেওয়ার কথা ভেবেছিলেন:

function noBack()
{
   window.history.forward()
}
noBack();
window.onload = noBack;
window.onpageshow = function(evt){ if(evt.persisted) noBack(); }
window.onunload = function(){ void(0); }

তবে উপরোক্ত ব্যবহারকারীদের দ্বারা উল্লিখিত হিসাবে, এটি কখনও ভাল অনুশীলন নয় এবং সমস্ত কারণে এড়ানো উচিত।


4
এটি কেন এড়ানো উচিত তার কারণগুলি যদি আপনি বলতে পারেন তবে ভাল হবে।
ক্রিস স্নো

আমার বোঝার হিসাবে, আপনি কারিগরির ব্রাউজারের পিছনে বোতামটি প্রযুক্তিগতভাবে অক্ষম করতে পারবেন না, আপনি কেবল এটি তৈরি করতে পারেন যাতে বোতামটি উপলভ্য না হয় বা একই পৃষ্ঠাটি লোড করা অবিরত থাকে। জেএসের মাধ্যমে এটি করার পরিবর্তে সার্ভার সাইড কোডটি ব্যবহার করুন এবং সঠিক যুক্তি ব্যবহার করুন যা পিছনে বোতামটি ব্যবহার করার দরকার নেই। একই পৃষ্ঠাটি পুনরায় লোড করা বা কাস্টম বার্তা প্রদর্শন করার মতো বিকল্প ক্রিয়া ব্যবহার করা উচিত।
ব্যবহারকারী 704988

2

আপনি যদি ক্লায়েন্ট-সাইড প্রযুক্তির উপর নির্ভর করেন তবে এটি পরিবেষ্টিত হতে পারে। উদাহরণস্বরূপ জাভাস্ক্রিপ্ট অক্ষম করা যেতে পারে। অথবা ব্যবহারকারী আপনার বিধিনিষেধকে ঘিরে কাজ করতে কোনও জেএস স্ক্রিপ্ট কার্যকর করতে পারে।

আমার অনুমান যে আপনি কেবল এটির ব্যবহারকারীর সেশনের সার্ভার-সাইড ট্র্যাকিং এবং প্রয়োজনীয় পৃষ্ঠাতে ব্যবহারকারী / ব্রাউজারকে (সার্ভার.টান্সফার হিসাবে, প্রতিক্রিয়া নয়। পুনর্নির্দেশ) পুনঃনির্দেশ দ্বারা এটি করতে পারেন।



2

কয়েকটি আলাদা বাস্তবায়ন হয়েছে। IE এর জন্য একটি ফ্ল্যাশ সমাধান এবং কিছু iframe / ফ্রেম সমাধান রয়েছে। এটা পরীক্ষা করো

http://www.contentwithstyle.co.uk/content/fixing-the-back-button-and-enabling-bookmarking-for-ajax-apps

বিটিডাব্লু: পিছনের বোতামটি নিষ্ক্রিয় করার (বা কমপক্ষে 1 টি পদক্ষেপ রোধ করার) জন্য প্রচুর বৈধ কারণ রয়েছে - উপরের নিবন্ধে আলোচিত হ্যাশ সমাধানটি কার্যকর করে এমন একটি উদাহরণ জিমেইলে দেখুন।

গুগল "কীভাবে এজ্যাক্স ব্যাক বোতামটি ভেঙে দিয়েছে" এবং আপনি ব্যবহারকারীর পরীক্ষার উপর প্রচুর নিবন্ধ এবং পিছনের বোতামটি অক্ষম করার বৈধতা পাবেন।


ফেসবুকের নতুন ফটো ভিউয়ারটিও দেখুন। লক্ষ্য করুন যে পিছনের বোতামটি ব্রাউজারের ডিফল্ট না করে আপনাকে একটি ফটো (যা আপনি চান)
ফিরিয়ে নিয়ে যায়

2

আমারও একই সমস্যা ছিল, এই জাভা স্ক্রিপ্ট ফাংশনটি হেড ট্যাগে ব্যবহার করুন বা এটির 100% কাজ ঠিক আছে, আপনাকে আর ফিরে যেতে দেবে না।

 <script type = "text/javascript" >
      function preventBack(){window.history.forward();}
        setTimeout("preventBack()", 0);
        window.onunload=function(){null};
    </script>

1

এই কোড ব্যবহার করে দেখুন। আমার জন্য কাজ করেছেন। এটি মূলত পৃষ্ঠাটি লোড হওয়ার সাথে সাথেই হ্যাশটিকে পরিবর্তন করে যা URL এ "1" যোগ করে সাম্প্রতিক ইতিহাস পৃষ্ঠা পরিবর্তন করে changes সুতরাং আপনি যখন পিছনে বোতামটি চাপবেন তখন এটি প্রতিটি সময় একই পৃষ্ঠায় পুনঃনির্দেশ করে।

 <script type="text/javascript">
    var storedHash = window.location.hash;
    function changeHashOnLoad() { window.location.hash = "1";}
    window.onhashchange = function () {
        window.location.hash = storedHash;
    }
</script>

<body onload="changeHashOnLoad(); ">

</bod>


0

ব্রাউজারের ব্যাক বোতামটি অক্ষম করার চেষ্টা করার পরিবর্তে এটি সমর্থন করা ভাল। .NET 3.5 ব্রাউজারটিকে ফিরে (এবং ফরোয়ার্ড) বোতামগুলি খুব ভালভাবে পরিচালনা করতে পারে। গুগলের সাথে অনুসন্ধান করুন: "স্ক্রিপ্টম্যানার সক্ষমযোগ্য ইতিহাস"। কোন ব্যবহারকারী পদক্ষেপগুলি ব্রাউজারের ইতিহাসে (স্ক্রিপ্টম্যানেজার -> অ্যাড হিস্টোরিপয়েন্ট) কোনও এন্ট্রি যুক্ত করবে তা আপনি নিয়ন্ত্রণ করতে পারেন এবং যখনই ব্যবহারকারী ব্রাউজারের পিছনে / ফরোয়ার্ড বোতামগুলিতে ক্লিক করে আপনার এএসপি.এনইটি অ্যাপ্লিকেশন একটি ইভেন্ট পেয়ে থাকে। এটি সমস্ত পরিচিত ব্রাউজারগুলির জন্য কাজ করবে


0

বিশ্বব্যাপী, পিছনের বোতামটি অক্ষম করা সত্যিই খারাপ অভ্যাস। তবে, কিছু পরিস্থিতিতে, পিছনের বোতামের কার্যকারিতাটি বোঝায় না।

পৃষ্ঠাগুলির মধ্যে অযাচিত নেভিগেশন রোধ করার জন্য এখানে একটি উপায়:

শীর্ষ পৃষ্ঠা (ফাইল top.php):

<?php
    session_start();
    $_SESSION[pid]++;
    echo "top page $_SESSION[pid]";
    echo "<BR><a href='secondary.php?pid=$_SESSION[pid]'>secondary page</a>";
?>

মাধ্যমিক পৃষ্ঠা (ফাইল secondary.php):

<?php
    session_start();
    if ($_SESSION[pid] != $_GET[pid]) 
        header("location: top.php");
    else {
        echo "secondary page $_SESSION[pid]";
        echo "<BR><a href='top.php'>top</a>";
    }
?>

প্রভাবটি হ'ল উপরের পৃষ্ঠাটি থেকে দ্বিতীয় পৃষ্ঠায় এবং আপনার নিজের লিঙ্কগুলি ব্যবহার করে পিছনে (যেমন বাতিল) প্রেরণে নেভিগেট করার অনুমতি দেওয়া। তবে, শীর্ষ পৃষ্ঠায় ফিরে যাওয়ার পরে ব্রাউজারের পিছনের বোতামটি দ্বিতীয় পৃষ্ঠায় নেভিগেট করা থেকে বাধা দেওয়া হয়।


0

এমনকি আমি এর আগেও একই পরিস্থিতির মুখোমুখি হয়েছিলাম ... এবং কোনও সাহায্য পাইনি। এই জিনিসগুলি চেষ্টা করুন সম্ভবত এটি আপনার জন্য কাজ করবে

লগইন পৃষ্ঠা <head>ট্যাগে:

<script type="text/javascript">
    window.history.forward();
</script>

লগআউট বোতামে আমি এটি করেছি:

protected void Btn_Logout_Click(object sender, EventArgs e)      
{
    connObj.Close();
    Session.Abandon();
    Session.RemoveAll();
    Session.Clear();
    HttpContext.Current.Session.Abandon();
}

এবং লগইন পৃষ্ঠায় আমি এইভাবে ব্যবহারকারীর নাম পাঠ্যবক্সে ফোকাস রেখেছি:

protected void Page_Load(object sender, EventArgs e)
{
    _txtUsername.Focus();
}

আশা করি এটি সাহায্য করবে ... :) কেউ আমাকে এই পৃষ্ঠাটি কীভাবে সম্পাদনা করবেন তা শিখিয়েছেন ...


ক) আপনার উত্তরটি সম্পাদনা করুন খ) প্রশ্ন চিহ্নটিতে ক্লিক করুন গ) উন্নত সহায়তার উপর ক্লিক করুন ঘ) পড়ুন এবং প্রয়োগ করুন :-) এছাড়াও নোট করুন যে সিটিআরএল-কে আন / বিন্যাসের জন্য নির্বাচিত ব্লককে কোড হিসাবে বিন্যাস করতে দেয় না। প্লাস্টম্যাটর ট্যাবগুলি হ্যান্ডেল করতে পারে না (সম্ভবত এখানে কোনও সমস্যা নয়)
ক্লিওপেট্রা

0

যদি আপনার ওয়েব অ্যাপ্লিকেশনটিতে মুছে ফেলা এবং ব্যাকস্পেস কীগুলি মৃদুভাবে দমন করা দরকার, যাতে তারা যখন আইটেমগুলি সম্পাদনা / মোছার সময় অপ্রত্যাশিতভাবে পৃষ্ঠাটি পুনঃনির্দেশিত না হয়, আপনি এই কোডটি ব্যবহার করতে পারেন:

window.addEventListener('keydown', function(e) {
  var key = e.keyCode || e.which;
  if (key == 8 /*BACKSPACE*/ || key == 46/*DELETE*/) {
    var len=window.location.href.length;
    if(window.location.href[len-1]!='#') window.location.href += "#";
  }
},false);

0

এই কোড ব্যবহার করে দেখুন। আপনাকে কেবল মাস্টার পৃষ্ঠায় এই কোডটি প্রয়োগ করতে হবে এবং এটি সমস্ত পৃষ্ঠায় আপনার জন্য কাজ করবে

<script type="text/javascript">
    window.onload = function () {
        noBack();
    }
    function noBack() {
        window.history.forward();
    }
</script>
<body  onpageshow="if (event.persisted) noBack();">
</body>

0

Yossi Shasho এর কোড নিয়ে সমস্যা হ'ল পৃষ্ঠাটি প্রতি 50 এমএসে শীর্ষে স্ক্রোল করছে। সুতরাং আমি যে কোড পরিবর্তন করেছি। এখন এটি সমস্ত আধুনিক ব্রাউজারগুলিতে, IE8 এবং তারপরের উপর কাজ করে

var storedHash = window.location.hash;
function changeHashOnLoad() {
    window.location.href += "#";
    setTimeout("changeHashAgain()", "50");
}

function changeHashAgain() {
    window.location.href += "1";
}

function restoreHash() {
    if (window.location.hash != storedHash) {
        window.location.hash = storedHash;
    }
}

if (window.addEventListener) {
    window.addEventListener("hashchange", function () {
        restoreHash();
    }, false);
}
else if (window.attachEvent) {
    window.attachEvent("onhashchange", function () {
        restoreHash();
    });
}
$(window).load(function () { changeHashOnLoad(); });

0

এটি আমাদের পক্ষে কাজ করেছে বলে মনে হয়।

history.pushState(null, null, $(location).attr('href'));
window.addEventListener('popstate', function () {
    history.pushState(null, null, $(location).attr('href'));
});

0
<script>
    $(document).ready(function() {
        function disableBack() { window.history.forward() }

        window.onload = disableBack();
        window.onpageshow = function(evt) { if (evt.persisted) disableBack() }
    });
</script>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.