পিছনের বোতামটি ক্লিক করার সময় ক্রস-ব্রাউজার অনলোড ইভেন্ট রয়েছে?


185

সমস্ত বড় ব্রাউজারের জন্য (আইই ব্যতীত), জাভাস্ক্রিপ্ট onloadইভেন্টটি পেছনের বোতাম ক্রিয়াকলাপের ফলে পৃষ্ঠাটি লোড করা হয় না - পৃষ্ঠাটি প্রথমে লোড হওয়ার পরে এটি কেবল আগুনে ছড়িয়ে পড়ে।

কেউ কি আমাকে কিছু নমুনা ক্রস ব্রাউজার কোড (ফায়ারফক্স, অপেরা, সাফারি, আইই,…) এর দিকে চিহ্নিত করতে পারেন যা এই সমস্যাটি সমাধান করে? আমি ফায়ারফক্সের pageshowইভেন্টের সাথে পরিচিত তবে দুর্ভাগ্যক্রমে অপেরা বা সাফারি উভয়ই এটিকে বাস্তবায়ন করে না।


6
এটি কোনও সমস্যা নয় - ব্যবহারকারী পিছনের বোতামটি টিপলে এটি ওয়েব পৃষ্ঠাটি দ্রুত লোড হতে দেয়। বিস্তারিত জানার জন্য নীচে আমার উত্তর দেখুন। এখানে প্রস্তাবিত কর্মক্ষেত্রগুলি ওয়েব পৃষ্ঠাকে ব্যবহারকারীর জন্য আরও বিরক্তিকর করে তোলে, যেহেতু পিছনে / ফরোয়ার্ড নেভিগেট করা ধীর হয়।
নিকোলে

2
@ ক্রোমকিনস: আপনার মন্তব্য এই প্রশ্নের সাথে সম্পর্কিত নয়। যখন ব্রাউজারগুলি জেএস / ডোম অবস্থা পুনরুদ্ধার করে না, তখন তারা লোড ইভেন্টটিকে সরিয়ে দেয়।
নিকোলে

আইওএস 5+ ইতিহাসের পিছনে বোতামটি এখানে সমাধান হয়েছে stackoverflow.com/a/12652160/1090395
ম্লাদেন জঞ্জেটভিক

উত্তর:


117

ছেলেরা, আমি দেখেছি যে জিকুয়েরির একটি মাত্র প্রভাব রয়েছে: পিছনের বোতামটি টিপলে পৃষ্ঠাটি পুনরায় লোড করা হবে। " রেডি " এর সাথে এর কোনও যোগসূত্র নেই ।

কিভাবে কাজ করে? ঠিক আছে, জিকুয়ারি একটি অনলোডলোড ইভেন্ট শ্রোতার যোগ করে ।

// http://code.jquery.com/jquery-latest.js
jQuery(window).bind("unload", function() { // ...

ডিফল্টরূপে, এটি কিছুই করে না। তবে কোনওভাবেই এটি সাফারি, অপেরা এবং মজিলায় পুনরায় লোডকে ট্রিগার করবে বলে মনে হচ্ছে - ইভেন্ট হ্যান্ডলারটিতে যা আছে তা বিবেচনা করেই।

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

বিশ্বাস করতে পারি না? এটা চেষ্টা কর:

<body onunload=""><!-- This does the trick -->
<script type="text/javascript">
    alert('first load / reload');
    window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>

আপনি JQuery ব্যবহার করার সময় অনুরূপ ফলাফল দেখতে পাবেন।

অননলোড ছাড়াই আপনি এইটির সাথে তুলনা করতে চাইতে পারেন

<body><!-- Will not reload on back button -->
<script type="text/javascript">
    alert('first load / reload');
    window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>

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

3
এটি পাশাপাশি কাজ করে (অননলোড = "" অংশটি ভুলে যাবেন না, অন্যথায় এফএফ 3 এ কাজ করবে না): <বডি অনলোড = "সতর্কতা ('ওভারলোড');" onunload = "">
ওয়াদিহ এম।

3
এটি কারণ ব্রাউজারটি ধরে নিয়েছে যে পৃষ্ঠাটি যদি কোনও onunloadহ্যান্ডলার (পৃষ্ঠাটি ইতিমধ্যে সমস্ত কিছু ধ্বংস করে দিয়েছে; কেন এটি ক্যাশে করেছে?) থাকলে পৃষ্ঠাটি অপ্রকাশযোগ্য ।
ক্যাসি চু

14
উত্তরটি আধুনিক ব্রাউজারগুলিতে কাজ করছে না বলে মনে হচ্ছে - সর্বশেষ ক্রোম এবং অপেরাতে চেক করা হয়েছে
অ্যান্ড্রু

10
এটি আইপ্যাড
সাফারিটিতে

74

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

loadপৃষ্ঠাটি এই bfcache থেকে লোড হওয়ার পরে ইভেন্টটি ফায়ার হওয়ার কথা নয়। উদাহরণস্বরূপ, যদি আপনি "লোড" হ্যান্ডলারে আপনার ইউআই তৈরি করেন এবং "লোড" ইভেন্টটি প্রাথমিক লোডের উপরে একবার নিক্ষেপ করা হয়েছিল এবং দ্বিতীয়বার পৃষ্ঠাটি বিএফচাকে থেকে পুনরায় লোড করা হয়েছিল, পৃষ্ঠাটি শেষ হবে would ইউআই উপাদানগুলি সদৃশ করুন।

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

পৃষ্ঠাগুলির জন্য যখন সেগুলি নেভিগেট করা হবে বা কখন ফিরে যেতে হবে তা জানতে, ফায়ারফক্স ১.৫++ এবং বাগের ফিক্সের সাথে সাফারির সংস্করণ "পৃষ্ঠাশো" এবং "পেজহাইড" নামক বিশেষ ইভেন্টগুলিকে সমর্থন করে।

তথ্যসূত্র:


এটা খুব দুর্দান্ত। আমি বর্তমানে এমন একটি পরিস্থিতিতে রয়েছি যেখানে আমার ডোম ম্যানিপুলেশনগুলি বিএফচছে তে সংরক্ষিত হয় না। এমন কোনও পরিস্থিতি রয়েছে যেখানে আপনি আশা করতে পারেন?
বেনসন

1
@ বেনসন: সম্ভাব্য কারণগুলি যখন ফায়ারফক্স আপনার পৃষ্ঠাটি bfcache- এ সংরক্ষণ করবে না আমি dev.mo পৃষ্ঠায় লিঙ্ক করেছি যা আমি লিঙ্ক করেছি। আমি মনে করি না যে পৃষ্ঠাটি bfcache- তে সংরক্ষণ করা সম্ভব, তবে নির্দিষ্ট ডিওএম রাষ্ট্র সংরক্ষিত হবে না।
নিকোলে

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

@ গ্রেগ: আপনি পৃষ্ঠাটিকে নিয়ন্ত্রণকারী বিকাশকারী হিসাবে বোঝাতে চান? একটি 'পৃষ্ঠাশো' শ্রোতার কাছ থেকে একটি এজ্যাক্স অনুরোধ বন্ধ করুন।
নিকোলে

কীভাবে jQuery ব্যবহার করবেন এবং দ্রুত bfcache সমর্থন পাবেন সে সম্পর্কে কোনও ধারণা?
অ্যালেক্স ব্ল্যাক

31

আমি একটি সমস্যার মধ্যে দৌড়েছি যে যখন ব্যবহারকারী পিছনে বা সামনে ক্লিক করেছে তখন আমার জেএস কার্যকর করছে না। আমি প্রথমে ব্রাউজারটিকে ক্যাচিং থেকে থামানোর জন্য যাত্রা শুরু করেছিলাম তবে এটি সমস্যা বলে মনে হয় নি। আমার জাভাস্ক্রিপ্টটি সমস্ত লাইব্রেরি ইত্যাদি লোড হওয়ার পরে কার্যকর করা হবে। আমি রেডিস্টেট চেঞ্জ ইভেন্টের মাধ্যমে এগুলি পরীক্ষা করেছিলাম।

কিছু পরীক্ষার পরে আমি জানতে পেরেছিলাম যে কোনও পৃষ্ঠার পিছনে ক্লিক করা হয়েছে এমন একটি উপাদানের রেডিস্টেট 'লোড' নয় বরং 'সম্পূর্ণ'। যোগ করার পদ্ধতি || element.readyState == 'complete'আমার কন্ডিশনাল স্টেটমেন্ট আমার সমস্যার সমাধান।

ভেবেছি আমি আমার অনুসন্ধানগুলি ভাগ করব, আশা করি তারা অন্য কাউকে সহায়তা করবে।

সম্পূর্ণতার জন্য সম্পাদনা করুন

আমার কোডটি নিম্নরূপ দেখেছে:

script.onreadystatechange(function(){ 
   if(script.readyState == 'loaded' || script.readyState == 'complete') {
      // call code to execute here.
   } 
});

স্ক্রিপ্ট ভেরিয়েবলের উপরে কোডের নমুনায় একটি নতুন তৈরি স্ক্রিপ্ট উপাদান ছিল যা ডিওমে যুক্ত করা হয়েছিল।


7
আপনি এটি কোথায় যোগ করেছেন? এবং ব্যবহারকারীর পিছনে হিট হওয়ার পরে আপনি কীভাবে গুলি চালাতে পারেন? আমাদের কিছু কোড প্রদর্শন করুন!
কেরিগান

আপনি যখন "আমার শর্তাধীন বিবৃতি" বলছেন তখন আপনার অর্থ কী?
ফিলিপ সেন

1
@ ফিলিপ একটি শর্তাধীন বিবৃতি হল একটি বিবৃতি।
ব্রায়ান হিজ

22

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

এই পৃষ্ঠায় আরও তথ্য আছে

উদাহরণ:

history.navigationMode = 'compatible';
$(document).ready(function(){
  alert('test');
});

আমি এটি অপেরা 9.5, আই 7, এফএফ 3 এবং সাফারিতে পরীক্ষা করেছি এবং এটি তাদের সকলের মধ্যেই কাজ করে।


2
স্পষ্টতই এটি একটি সময় হয়েছে (প্রায় 5.5 বছর) তবে আপনার লিঙ্কটি মারা গেছে তা লক্ষ করার মতো।
জেফ

2
এই সমাধানটি আমার পক্ষে কাজ করে না। আমি এই সমস্যাটি সর্বশেষ ফায়ারফক্সে পেয়েছি (45.0.1)
আরমিন

6

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

<input type='hidden' id='dirty'>

<script>
$(document).ready(function() {
  if ($('#dirty').val()) {
    // ... reload the page or specific divs only
  }
  // when something modifies a div that needs to be refreshed, set dirty=1
  $('#dirty').val('1');
});
</script>

এবং যখনই আমি পিছনের বোতামটি ক্লিক করেছি এটি সঠিকভাবে ট্রিগার করবে।


3
যদিও এটি ফায়ারফক্সে কাজ করে না, আমি মনে করি এটি IE / Chrome এর পরিস্থিতি পরিচালনা করার জন্য একটি চতুর উপায় যেখানে গোপন ক্ষেত্রের অধ্যবসায় খুব দরকারী useful আমি আপনার কৌশল এবং "পৃষ্ঠা প্রদর্শন" ইভেন্টটিও ব্যবহার করেছি, তাই আমি সমস্ত প্রধান ব্রাউজারগুলি .েকে রাখি।
ম্যাগনাস স্মিথ

কোন ব্রাউজারটি পৃষ্ঠা শো দিয়ে কাজ করে না তা এটি করে?
জাস্টিন

4

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


4

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

$(window).unload(function(){ alert('do unload stuff here'); }); 

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


4

আমি ckramer নিশ্চিত করতে পারি যে jQuery এর প্রস্তুত ইভেন্টটি IE এবং ফায়ারফক্সে কাজ করে। একটি নমুনা এখানে:

<html>
<head>
    <title>Test Page</title>
    <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
    <script type="text/javascript">
            $(document).ready(function () {
               var d = new Date();
               $('#test').html( "Hi at " + d.toString() );
            });
    </script>
</head>
<body>
    <div id="test"></div>
    <div>
        <a href="http://www.google.com">Go!</a>
    </div>
</body>
</html>

4

যে সমস্ত লোকেরা পুরো jquery লাইব্রেরিটি ব্যবহার করতে চান না তাদের জন্য আমি পৃথক কোডে প্রয়োগটি প্রত্যাহার করেছি। এটি কেবল 0,4 কেবি বড়।

আপনি কোড, একসঙ্গে এই উইকি একটি জার্মান টিউটোরিয়াল সঙ্গে পেতে পারবেন: http://www.easy-coding.de/wiki/html-ajax-und-co/onload-event-cross-browser-kompatibler-domcontentloaded.html


1
লোন লিঙ্কটি একটি দুর্বল উত্তর হিসাবে বিবেচিত হয় ( FAQ দেখুন ) যেহেতু এটি নিজেই অর্থহীন এবং লক্ষ্য সংস্থান ভবিষ্যতে জীবিত থাকার গ্যারান্টিযুক্ত নয় । উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা ভাল , এবং লিঙ্কটি রেফারেন্সের জন্য সরবরাহ করা ভাল।
j0k

3

jQuery এর প্রস্তুত ইভেন্টটি কেবল এই ধরণের ইস্যুর জন্য তৈরি হয়েছিল। প্রচ্ছদের অধীনে কী চলছে তা দেখতে আপনি বাস্তবায়নটি খনন করতে পারেন।


6
দীর্ঘ সময় পরে, readyফায়ারফক্সে ট্রিগার করা হবে বলে মনে হচ্ছে না, পিছনে বোতামটি ব্যবহার করার সময়। আরও দেখুন নিকোলে এর উত্তর
আরজান

2

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


2

আমি বিল থেকে $ (ডকুমেন্ট) ব্যবহার করে সমাধানটি চেষ্টা করেছি ... প্রস্তুত ... তবে প্রথমে এটি কার্যকর হয়নি। আমি আবিষ্কার করেছি যে স্ক্রিপ্টটি এইচটিএমএল বিভাগের পরে রাখলে এটি কার্যকর হবে না। যদি এটি প্রধান বিভাগ হয় তবে এটি কেবল আইই তে কাজ করবে। স্ক্রিপ্টটি ফায়ারফক্সে কাজ করে না।


1

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

যাইহোক, আমি মনে করি এটি আপাতত যথেষ্ট কাছাকাছি। ধন্যবাদ সবাইকে!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<meta http-equiv="expires" content="0">
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready( 
                    function(){
                      alert('test');
                    }
                 );
</script>
</head>
<body>
<h1>Test of the page load event and the Back button using jQuery</h1>
</body>
</html>

1

আন ইভেন্টে ইন্টারনেট 9. আমি ঠিক কাজ করছে না লোড ইভেন্টটি (লোড থাকলে ()), এটি কাজ করছে জরিমানা এটা চেষ্টা আই ই 9 এবং FF5

উদাহরণ:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
    jQuery(window).bind("load", function() {
        $("[name=customerName]").val('');
    });
</script>
</head>
<body>
    <h1>body.jsp</h1>
    <form action="success.jsp">
        <div id="myDiv">

        Your Full Name: <input name="yourName" id="fullName"
            value="Your Full Name" /><br> <br> <input type="submit"><br>

        </div>

    </form>
</body>
</html>

0

আমি এইচটিএমএল টেমপ্লেট ব্যবহার করেছি। এই টেমপ্লেটের কাস্টম.জেএস ফাইলটিতে এই জাতীয় ফাংশন ছিল:

    jQuery(document).ready(function($) {

       $(window).on('load', function() {
          //...
       });

    });

অন্য পৃষ্ঠায় যাওয়ার পরে আমি ফিরে যেতে চাইলে এই ফাংশনটি কাজ করছে না।

সুতরাং, আমি এটি চেষ্টা করেছি এবং এটি কাজ করেছে:

    jQuery(document).ready(function($) {
       //...
    });

   //Window Load Start
   window.addEventListener('load', function() {
       jQuery(document).ready(function($) {
          //...
       });
   });

এখন, আমার 2 টি "প্রস্তুত" ফাংশন রয়েছে তবে এটি কোনও ত্রুটি দেয় না এবং পৃষ্ঠাটি খুব ভালভাবে কাজ করছে।

তবুও, আমাকে ঘোষণা করতে হবে যে এটি উইন্ডোজ 10 - অপেরা ভি 53 এবং এজ ভি 42 তে পরীক্ষা করেছে তবে অন্য কোনও ব্রাউজার নেই। মনে রাখবেন ...

দ্রষ্টব্য: jquery সংস্করণটি 3.3.1 এবং মাইগ্রেট সংস্করণটি ছিল 3.0.0

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.