তাই এখন যে এইচটিএমএল 5 history.pushState
ব্রাউজারগুলির ইতিহাস পরিবর্তন করার জন্য পরিচয় করিয়েছে , ওয়েবসাইটগুলি এটি ইউআরএল এর খণ্ড সনাক্তকারীকে পরিবর্তনের পরিবর্তে এজাক্সের সাথে মিশ্রণে ব্যবহার শুরু করে।
দুঃখের সাথে এর অর্থ এই যে এই কলগুলি আর সনাক্ত করা যায় না onhashchange
।
আমার প্রশ্নটি: কোনও ওয়েবসাইট কখন ব্যবহার করে তা সনাক্ত করার কোনও নির্ভরযোগ্য উপায় (হ্যাক ?;) রয়েছে history.pushState
? উত্থাপিত ইভেন্টগুলি সম্পর্কে স্পেসিফিকেশনটিতে কিছু লেখা নেই (কমপক্ষে আমি কিছুই খুঁজে পাইনি)।
আমি একটি মুখোমুখী তৈরি করার চেষ্টা করেছি এবং window.history
আমার নিজের জাভাস্ক্রিপ্ট অবজেক্টটি প্রতিস্থাপন করেছি, তবে এটির কোনও প্রভাব ছিল না।
আরও ব্যাখ্যা: আমি একটি ফায়ারফক্স অ্যাড-অন বিকাশ করছি যা এই পরিবর্তনগুলি সনাক্ত করতে এবং সেই অনুযায়ী কাজ করা দরকার।
আমি জানি কিছু দিন আগে একই ধরণের প্রশ্ন ছিল যা জিজ্ঞাসা করেছিল যে কয়েকটি ডিওএম ইভেন্ট শোনানো দক্ষ হবে কিনা তবে আমি বরং তার উপর নির্ভর করব না কারণ এই ইভেন্টগুলি বিভিন্ন কারণে উত্পন্ন হতে পারে।
হালনাগাদ:
এখানে একটি জিসফিল (ফায়ারফক্স 4 বা ক্রোম 8 ব্যবহার করুন) দেখায় যে onpopstate
যখন pushState
ডাকা হয় তখন ট্রিগার হয় না (বা আমি কিছু ভুল করছি? এটি উন্নত করতে নির্দ্বিধায়!))
আপডেট 2:
আর একটি (পার্শ্ব) সমস্যা হ'ল এটি window.location
ব্যবহার করার সময় আপডেট হয় না pushState
(তবে আমি ইতিমধ্যে এটি সম্পর্কে এখানে পড়ে আমার মনে হয়)।
history
বিষয়টিকে প্রতিস্থাপন করেছেন । এই ক্ষেত্রে অপ্রয়োজনীয় হতে পারে।