জাভাস্ক্রিপ্ট অক্ষম করা আছে কীভাবে সনাক্ত করবেন?


659

আজ সকালে একটি পোস্ট ছিল যে কত লোক জাভাস্ক্রিপ্ট অক্ষম করে তা সম্পর্কে জানতে চেয়েছিল। তারপরে আমি ভাবতে শুরু করেছিলাম যে ব্যবহারকারী এটি অক্ষম করেছে কিনা তা নির্ধারণের জন্য কোন কৌশলগুলি ব্যবহার করা যেতে পারে।

জাভাস্ক্রিপ্ট অক্ষম করা আছে কিনা তা সনাক্ত করার কয়েকটি সংক্ষিপ্ত / সহজ উপায় সম্পর্কে কি কেউ জানেন? আমার উদ্দেশ্য হ'ল সতর্কতা দেওয়া যে ব্রাউজারটি জেএস সক্ষম না করে সাইটটি সঠিকভাবে কাজ করতে সক্ষম নয়।

শেষ পর্যন্ত আমি তাদের এমন সামগ্রীগুলিতে পুনর্নির্দেশ করতে চাই যা জেএসের অনুপস্থিতিতে কাজ করতে সক্ষম, তবে শুরু করার জন্য আমার স্থানধারক হিসাবে এই সনাক্তকরণের প্রয়োজন।


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

প্রগতিশীল বৃদ্ধি যা আমি খুঁজছি। আমি চাই যে ওকে তাদের বিকল্প সামগ্রীতে পুনর্নির্দেশ করতে সক্ষম হতে হবে যা জেএস সক্ষম বা সক্ষম ব্রাউজারের অ্যাবসনে সঠিকভাবে কাজ করবে।
মাইকজে

1
@ এক্সপায়ারডিনঞ্জা নিকোলাস জাকাসের এই পোস্টটি প্রায় এক বছর পুরানো হলেও প্রায় ২% বলেছে।
sdleihssirhc

সবচেয়ে সহজ উপায় হ'ল জাভাস্ক্রিপ্ট নন সাইটগুলি দেখানোর জন্য নোগ্রিপ্ট ব্যবহার করা এবং শৈলী প্রদর্শনে পরিবর্তন করে কোনও জাভাস্ক্রিপ্ট নির্ভর নির্ভর উপাদানগুলি দেখানোর জন্য জাভাস্ক্রিপ্ট ব্যবহার করুন।
মাইফরভিক

উত্তর:


286

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

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


129
<নোগ্রিপ্ট> জাভাস্ক্রিপ্ট-বিহীন সামগ্রী নির্দিষ্ট করার সর্বাধিক শব্দার্থগত সঠিক উপায় - এবং তারপরে জাভাস্ক্রিপ্ট অক্ষম করা আছে কিনা তা সনাক্ত করে এটি সক্ষম হয়েছে কিনা তা সনাক্ত করুন। সুতরাং ডিফল্টরূপে "আপনার আমার জাভাস্ক্রিপ্টের সঠিকভাবে ব্যবহারের প্রয়োজন" বার্তাটি দেখান, তবে এটি লোডের সাথে সাথে জাভাস্ক্রিপ্ট ফাংশন দিয়ে আড়াল করুন।
ম্যাট লাহক্যাম্প

58
@ ম্যাট লোহক্যাম্প: বা ডিফল্টরূপে বার্তাটি লুকিয়ে রাখুন এবং আনহাইড <style>করার <noscript>জন্য একটি ব্লক রেখে দিন (জেএস সক্ষম থাকলে সেখানে কোনও প্রতিস্থাপন হবে না)। আশ্চর্যজনকভাবে, এটি সমস্ত আধুনিক ব্রাউজারগুলিতে কাজ করে, এবং এমনকি
আই 6

7
@ ম্যাট - আমি এটি কিছুক্ষণ করছিলাম, তবে ব্যবহারকারীরা বিভ্রান্ত হয়ে ধীর সংযোগে বার্তাটি কিছুটা সময়ের জন্য স্থির থাকে। আমি এখানে অন্যরকম সমাধান খুঁজছি। @ পিসকভোর - শিরোনামে থাকা <নোগ্রিপ্ট> ট্যাগটি বৈধতা দেবে না, এবং শরীরে একটি <স্টাইল> ট্যাগটি বৈধতা পাবে না।
বেন

20
... আপনি বৈধতার সাথে কেন উদ্বিগ্ন? আপনি কি বৈধতা দেওয়ার জন্য বৈধতা দিচ্ছেন? এটি "সঠিক" নাও হতে পারে তবে যদি এটি কাজ করে এবং "হুডের নীচে সামান্য ময়লা দিয়ে" এটি সম্পাদন করে তবে সমস্যা কী? চিন্তা করবেন না, আমি বিচার করব না ;-)
কেইফ

4
আপনি বৈধ থাকবেন যদি আপনি কেবল <নোগ্রিপ্ট> ট্যাগের মধ্যে প্রদত্ত উপাদানগুলিতে শৈলীর বৈশিষ্ট্যটি ব্যবহার করেন (যেমন <নোগ্রিপ্ট> <ডি স্টাইল = "রঙ: লাল;"> ব্লহব্লাহ </ ডিভি> </ ননস্ক্রিপ্ট> বা স্যাজ। অনুরূপ) । তবে এটি যদি বৈধ থাকে তবে আপনি <স্টাইল> ব্লকটি কিছু সাধারণ .noscript (বা অনুরূপ) শ্রেণিবদ্ধ উপাদানগুলির স্টাইল সংজ্ঞায়িত করে শিরোনামে রাখেন এবং শরীরে <নোগ্রিপ্ট> ট্যাগের মধ্যে, আপনি কেবলমাত্র প্রদত্ত উপাদানগুলিকে দেবেন পূর্বে সংজ্ঞায়িত ক্লাসের নোসক্রিপ্ট, যেমন: <নোগ্রিপ্ট <<div class = "noscript"> blahblah </div> </noscript>
Sk8erPeter

360

আমি এখানে আমার .02 যুক্ত করতে চাই। এটি 100% বুলেটপ্রুফ নয়, তবে আমি মনে করি এটি যথেষ্ট ভাল।

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

সুতরাং, আপনি যা চান তা হ'ল একটি পৃষ্ঠায় "পুনর্নির্দেশ" যা "জেএস ​​চালু করুন, নির্বোধ" বলে। তবে অবশ্যই, আপনি নির্ভরযোগ্যভাবে মেটা পুনঃনির্দেশগুলি করতে পারবেন না। সুতরাং, এখানে পরামর্শ:

<noscript>
    <style type="text/css">
        .pagecontainer {display:none;}
    </style>
    <div class="noscriptmsg">
    You don't have javascript enabled.  Good luck with that.
    </div>
</noscript>

... যেখানে আপনার সাইটের সমস্ত বিষয়বস্তু "পেজকন্টেন্টার" শ্রেণির বিভাগের সাথে আবৃত। নোগ্রিপ্ট ট্যাগের অভ্যন্তরে সিএসএস তখন আপনার সমস্ত পৃষ্ঠাগুলি আড়াল করবে এবং এর পরিবর্তে আপনি যে কোনও "জেএস ​​নয়" বার্তা প্রদর্শন করতে পারবেন display এটি আসলে জিমেইল হিসাবে দেখা যাচ্ছে ... এবং এটি যদি গুগলের পক্ষে যথেষ্ট ভাল হয় তবে এটি আমার ছোট সাইটের পক্ষে যথেষ্ট ভাল।


12
@ গুগল ডটকমকে যাচাই করার চেষ্টা কখনও করেছেন? বৈধতা কেবলমাত্র ডকুমেন্টটি স্পষ্ট শীটটি অনুসরণ করে তা নির্ধারণ করে, এটি কোনওভাবেই পৃষ্ঠার ব্যবহারকে প্রভাবিত করে না।
জে কেরিচার্টজ

71
@ জোনাস জিয়ারগ্যাট আপনার ওয়েব অ্যাপটি যদি নির্মিত হয় - এবং জাভাস্ক্রিপ্টটি কাজ করতে পারে তবে জাভাস্ক্রিপ্টের প্রয়োজন হলে ব্যবহারকারীকে জোর করে কী ঘটবে? আমি এই মন্তব্যটি প্রায়শই শুনতে পাই, তবে এটি কেবলমাত্র সর্বাধিক সাধারণ সাইটের জন্য বৈধ। জেএস ছাড়াই ফেসবুক চেষ্টা করে দেখুন কী ঘটে। যদি আপনার অ্যাপ্লিকেশনটি জাভাস্ক্রিপ্টের জন্য তৈরি করা হয়েছিল, তবে 99% ব্যবহারকারী যেভাবেই সক্ষম করেছেন তার প্রয়োজনে কী ভুল?
লি বেনসন

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

14
@ কলারস, আমি ২০১২ সালের মার্চ মাসে এই মন্তব্যটি করেছিলাম এবং আমি যুক্তি দিয়েছিলাম যে এটি আজ দ্বিগুণ-সত্য। তার পর থেকে, আমাদের মধ্যে উল্কা, অ্যাঙ্গুলার.জেস, ফ্যামো.উস এবং একটি প্রচুর আশ্চর্য গ্রন্থাগার রয়েছে যা সকলের কাছে জাভাস্ক্রিপ্ট এমনকি শুরু হওয়া প্রয়োজন । আমি অবাক হচ্ছি যে ব্যবহারকারীরা জেএস নিষ্ক্রিয় করতে চেয়েছিলেন তারা আসলে কী অর্জন করার চেষ্টা করছে ... স্পষ্টতই, তারা আমাদের বাকি অংশের মতো একই ওয়েবটি সার্ফ করছে না, এবং কোনও সংস্থার জন্য তাদের ওয়েবসাইটটি সবচেয়ে ক্ষুদ্রতম হিসাবে স্কেল করার দরকার নেই এমন কোনও কারণ নেই a একগুঁয়ে ব্যবহারকারীদের উপ-সেট ...
লি বেনসন

6
হ্যাঁ, এবং আমি ভেবেছিলাম কেন আমি আপনার উত্তরটিকে উজ্জীবিত করতে পারিনি, যেহেতু আমি আমার জেএস :-) সক্রিয় করতে ভুলে গেছি) আমি আপনার সমাধানটি পছন্দ করি এবং প্রয়োগ করি! ধন্যবাদ!
গারাভানী

198

noscript জাভাস্ক্রিপ্ট অক্ষম করা হলে ব্লকগুলি কার্যকর করা হয় এবং সাধারণত আপনি জাভাস্ক্রিপ্টে তৈরি করেছেন এমন বিকল্প সামগ্রী প্রদর্শন করতে ব্যবহৃত হয়, যেমন

<script type="javascript">
    ... construction of ajaxy-link,  setting of "js-enabled" cookie flag, etc..
</script>
<noscript>
    <a href="next_page.php?nojs=1">Next Page</a>
</noscript>

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

আপনার কতজন ব্যবহারকারী জাভাস্ক্রিপ্ট অক্ষম করেছেন তার বিশুদ্ধ পরিসংখ্যানগত ধারণা যদি আপনি চান তবে আপনি এর মতো কিছু করতে পারেন:

<noscript>
    <img src="no_js.gif" alt="Javascript not enabled" />
</noscript>

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

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


7
এটি খুব কার্যকর নয়। উদাহরণস্বরূপ, এটি কেবল পাঠ্য-ব্রাউজারগুলির সাথে কাউকে গণনা করবে না, যার সাধারণত জাভাস্ক্রিপ্ট সমর্থন নেই। খুব কমপক্ষে, আপনার এই চিত্রটির জন্য ক্যাশে অক্ষম করা উচিত।
জিম

3
যেগুলি মোটেও জেএসকে সমর্থন করে না তা ব্রাউজার করবেন না নসক্রিপ্ট ট্যাগটিকে উপেক্ষা করে চিত্রটি দেখায় না?
LKM

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

নোট করুন যে বর্তমানে IE8 এর সাথে একটি বাগ রয়েছে এবং আপনি যদি এটি স্টাইল করেন তবে নোগ্রিপ্ট ট্যাগ রয়েছে ...
অ্যালেক্স

2
এছাড়াও আপনি সেই চিত্রটি সার্ভার-সাইড স্ক্রিপ্ট হিসাবে পরিবেশন করতে পারেন, মাইম-টাইপ নির্ধারণ করে এবং ব্যবহারকারীর সম্পর্কে কিছু তথ্য লগ করতে বা একটি কুকি ফেলে দিতে ব্যবহার করতে পারেন ... px.sklar.com/code.html/id=256
জে কেরিচার্টজ

46

এটি আমার জন্য কাজ করেছিল: জাভাস্ক্রিপ্ট অক্ষম থাকলে এটি কোনও দর্শনার্থীকে পুনর্নির্দেশ করে

<noscript><meta http-equiv="refresh" content="0; url=whatyouwant.html" /></noscript>

6
এটি অবৈধ। নসস্ক্রিপ্ট উপাদানগুলিতে মেটা উপাদান থাকতে পারে না। আমি এটি সমস্ত ব্রাউজারগুলিতে (ভবিষ্যতে যে ব্রাউজারগুলিতে আপনি বর্তমানে পরীক্ষা করতে পারবেন না) এটি নির্ভরযোগ্যভাবে কাজ করার জন্য বিশ্বাস করব না, কারণ তারা বিভিন্ন উপায়ে ত্রুটি পুনরুদ্ধার করতে পারে।
কোয়ান্টিন

15
এটি অবৈধ হতে পারে তবে ফেসবুকের কোডটি দেখুন, এটি <হেড> অংশে একই সমাধান ব্যবহার করে - এর অর্থ এটি খুব ভাল সমাধান নয়, কারণ ফেসবুকের কোডটি একটি কার্যকর কোড থেকে অনেক দূরে, তবে এটির অর্থ এই হতে পারে অনেক ব্যবহারকারীর ব্রাউজারে কাজ করে যা একটি গুরুত্বপূর্ণ দিক হতে পারে। তবে এটি সত্য যে এটি আসলে প্রস্তাবিত নয়। এটি তাদের কোড: <নোগ্রিপ্ট> <মেটা http-برابر = রিফ্রেশ সামগ্রী = "0; ইউআরএল = / সম্পর্কে / বার্তা /? _ Fb_noscript = 1" /> </noscript>
Sk8erPeter

আইই 9 (কমপক্ষে) এর একটি সেটিংস রয়েছে "মেটাকে রিফ্রেশ করার অনুমতি দিন"। আমি এটিকে অনেকটা বন্ধ করে দিচ্ছি বলে মনে হয় না তবে সম্ভবত জাভাস্ক্রিপ্টটি পছন্দ করে না এমনগুলি করে তবে আপনি যদি 100% চান তবে এটি এটি নয়।
জেনসন-বাটন-ইভেন্ট

এটি HTML5 তে বৈধ।
নাস্তাটা

1
এটি লিঙ্কডিনে ভাগ করার চেষ্টা করার সময় লিঙ্কটি নষ্ট করে দেয়, আমরা শক্ত উপায়টি পেয়েছি ... এটি ভাল ধারণা নয়। যেহেতু লিংকডিন মেটা রিফ্রেশ অনুসরণ করে, ওগ ট্যাগ ইত্যাদিকে উপেক্ষা করে থাকে
সোমডডমসোহোয়ারস

44

যদি আপনার ব্যবহারের ক্ষেত্রে এটি হয় যে আপনার কোনও ফর্ম রয়েছে (যেমন, লগইন ফর্ম) এবং আপনার সার্ভার-সাইড স্ক্রিপ্টটি ব্যবহারকারীর জাভাস্ক্রিপ্ট সক্ষম করেছে কিনা তা জানতে হবে, আপনি এই জাতীয় কিছু করতে পারেন:

<form onsubmit="this.js_enabled.value=1;return true;">
    <input type="hidden" name="js_enabled" value="0">
    <input type="submit" value="go">
</form>

ফর্মটি জমা দেওয়ার আগে এটি js_enabled এর মান 1 এ পরিবর্তন করবে। যদি আপনার সার্ভার-সাইড স্ক্রিপ্টটি 0 পায় তবে জেএস নেই। যদি এটি 1 পায়, জেএস!


44

আমি আপনাকে অবিরত জাভাস্ক্রিপ্ট লিখে অন্য পথে যেতে পরামর্শ দেব।

জাভাস্ক্রিপ্টযুক্ত ব্যবহারকারীদের জন্য আপনার প্রকল্পের কাজের বৈশিষ্ট্যগুলি অক্ষম করুন এবং আপনার হয়ে গেলে, আপনার জাভাস্ক্রিপ্ট ইউআই-উন্নতিগুলি বাস্তবায়ন করুন।

https://en.wikipedia.org/wiki/Unobtrusive_JavaScript


145
জীবন খুব ছোট. এটি 2012- জাভাস্ক্রিপ্ট সক্ষম করুন বা বাড়িতে যান
ইয়ারিন

25
"জীবন খুব ছোট It's এটি ২০১২ - জাভাস্ক্রিপ্ট সক্ষম করুন বা ঘরে যান!" কোনও জেএসের ইভেন্টে প্রদর্শিত নিখুঁত ছোট বার্তা। আপনাকে কেবল এটি জানাতে লগ ইন করেছেন যে @ ইয়্যারিন

5
আমি স্রেফ লগ ইন করে বললাম যে এটি দুর্দান্ত! @Yarin। আমি একটি ছোট সাইট তৈরি করছি যা সাধারণত সর্বজনীন হবে না (একটি ইন্ট্রানেটের মতো বিবেচনা করুন তবে বন্ধুরা প্রকল্পে কাজ করার জন্য একত্রিত হবেন)। আমি এটিকে একটি এসপিএ করছি এবং ফ্যালব্যাক লাগানোর জন্য বিরক্ত করছি না। নিরবচ্ছিন্ন জাভাস্ক্রিপ্ট আমি SPA ধারণার মধ্যে রাখছি কাজের চাপ প্রায় দ্বিগুণ হবে। নকআউট, জ্যাকুরির মতো আধুনিক জাভাস্ক্রিপ্ট লাইব্রেরি সহ অন্যদের মধ্যে, আমাদের কেবল এটি গ্রহণ করতে হবে যে প্রতিটি সাইটকে সহজেই "আপত্তিহীন" তৈরি করা যায় না। জাভাস্ক্রিপ্ট ওয়েব এর ভবিষ্যত।
lassombra

5
@ ইয়্যারিন আমি বেঁচে থাকার জন্য পিএইচপি / জেএস অ্যাপ্লিকেশনগুলি তৈরি করি আমি কখনই ফলব্যাকগুলিতে রাখি না ... যদি এটি কারওর সাথে কাজ না করে তবে তারা আমার সাথে যোগাযোগ করে এবং আমি তাদের বলি অতীতে জীবনযাপন বন্ধ করুন এবং জেএসকে সক্ষম করুন।
স্যাম

2
@ n611x007 - অনৈতিক জিনিসগুলি সমস্ত কোডে লুকিয়ে থাকে, প্রতিটি ডিভাইসে, সার্ভার বা ক্লায়েন্টের দিক থেকে। এটি দোষ নয়, মানুষের দোষ fault আমি জেএস বিদ্রূপের বিরুদ্ধে একটি প্রচারণা পেয়েছি কারণ আপনি এখনও ইন্টারনেটের সাথে সংযোগ স্থাপনের জন্য তৃতীয় পক্ষের আইএসপি ব্যবহার করেন, তৃতীয় পক্ষের হার্ডওয়্যার / ফার্মওয়্যার সহ এখনও একটি কম্পিউটার ব্যবহার করেন, তৃতীয় পক্ষের ইনজেকশনের মাধ্যমে অ্যাক্সেসযোগ্য সুরক্ষিত সেল নেটওয়ার্কগুলি এখনও ব্যবহার করেন, এখনও সেল ফোন রয়েছে যা ব্যবহার করে একটি তৃতীয় পক্ষ অপরিবর্তিত ওএস, এখনও একটি ফ্ল্যাট স্ক্রিন টিভি ব্যবহার করুন যা তৃতীয় পক্ষের ওয়াইড ওপেন আপডেট পরিষেবা ইত্যাদি ব্যবহার করে etc. ইত্যাদি You আপনি আপনার ব্রাউজারে জেএস বন্ধ না করেই আপনি সর্বদা এমআইটিএম-ইশ চ্যানেলের শিকার হন are
ধৌপিন

35

<noscript>এমনকি প্রয়োজনীয় নয়, এবং এক্সএইচটিএমএলে সমর্থিত নয় উল্লেখ করাও নয়

কাজের উদাহরণ :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
<head>
    <title>My website</title>
    <style>
      #site {
          display: none;
      }
    </style>
    <script src="http://code.jquery.com/jquery-latest.min.js "></script>
    <script>
      $(document).ready(function() {
          $("#noJS").hide();
          $("#site").show();
      });
    </script>
</head>
<body>
    <div id="noJS">Please enable JavaScript...</div>
    <div id="site">JavaScript dependent content here...</div>
</body>
</html>

এই উদাহরণে, যদি জাভাস্ক্রিপ্ট সক্ষম করা থাকে, তবে আপনি সাইটটি দেখতে পাবেন। যদি তা না হয় তবে আপনি "দয়া করে জাভাস্ক্রিপ্ট সক্ষম করুন" বার্তাটি দেখুন। জাভাস্ক্রিপ্ট সক্ষম করা আছে কিনা তা পরীক্ষা করার সর্বোত্তম উপায় হ'ল জাভাস্ক্রিপ্টটি চেষ্টা করে ব্যবহার করা use যদি এটি কাজ করে, এটি সক্ষম হয়েছে, যদি না হয়, তবে তা নয় ...


1
হা, এক্সএইচটিএমএল। সে দিনগুলি ছিল ... বিষয়গুলি অনেক কিছু বদলেছে: developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript
স্টিফান ওয়েইনহোল্ড

কেন jquery ব্যবহার করুন ...
লুইস Villavicencio

@ স্টাফেনহিনহোল্ড, জেএসএফ এক্সএইচটিএমএল ব্যবহার করে।
আরশ

34

শরীরে একটি। নন-জেএস ক্লাস ব্যবহার করুন এবং নন-জেএস প্যারেন্ট ক্লাসের উপর ভিত্তি করে জাভাস্ক্রিপ্ট স্টাইল তৈরি করুন। জাভাস্ক্রিপ্ট অক্ষম থাকলে আপনি সমস্ত নন জাভাস্ক্রিপ্ট স্টাইল পাবেন, জেএস সমর্থন থাকলে। নন-জেএস ক্লাসটি আপনাকে যথারীতি সমস্ত স্টাইল প্রদান করে প্রতিস্থাপন করা হবে।

 document.body.className = document.body.className.replace("no-js","js");

আধুনিকীকরণের মাধ্যমে এইচটিএমএল 5 বয়লারপ্লেট http://html5boilerplate.com/ এ ব্যবহৃত ট্রিক কিন্তু ক্লাস প্রতিস্থাপনের জন্য জাভাস্ক্রিপ্টের একটি লাইন ব্যবহার করতে পারেন

নোগ্রিপ্ট ট্যাগগুলি ঠিক আছে তবে যখন CSS এর সাহায্যে এটি করা যায় তখন আপনার HTML এ অতিরিক্ত জিনিস কেন থাকে?


5
কেউ .nojsক্লাসের কথা উল্লেখ করার আগে এটি অনেক সময় নিয়েছে বিশ্বাস করা যায় না ! এটি সর্বাধিক বিজোড় পদ্ধতির মধ্যে একটি এবং noscriptলজ্জাজনক।
মূসা

15

কিছুটা শক্ত তবে (হেয়ারবো আমাকে ধারণা দিয়েছে)

সিএসএস:

.pagecontainer {
  display: none;
}

জাতীয়:

function load() {
  document.getElementById('noscriptmsg').style.display = "none";
  document.getElementById('load').style.display = "block";
  /* rest of js*/
}

এইচটিএমএল:

<body onload="load();">

  <div class="pagecontainer" id="load">
    Page loading....
  </div>
  <div id="noscriptmsg">
    You don't have javascript enabled. Good luck with that.
  </div>

</body>

কোন ক্ষেত্রে ঠিক কাজ করবে? এমনকি যদি নসক্রিপ্ট ট্যাগটি অসমর্থিত (কেবলমাত্র কিছু সিএসএস প্রয়োজন) কোনও নন সিএসএস সমাধান জানেন?


13

কোনও লুকানো ক্ষেত্রের মান সেট করতে আপনি একটি সাধারণ জেএস স্নিপেট ব্যবহার করতে পারেন। ফিরে পোস্ট করার সময় আপনি জানেন যে জেএস সক্ষম ছিল কি না।

অথবা আপনি এমন একটি পপআপ উইন্ডো খোলার চেষ্টা করতে পারেন যা আপনি দ্রুত বন্ধ করে (তবে এটি দৃশ্যমান হতে পারে)।

এছাড়াও আপনার কাছে নসক্রিপ্ট ট্যাগ রয়েছে যা আপনি জেএস অক্ষম ব্রাউজারগুলির জন্য পাঠ্য প্রদর্শন করতে ব্যবহার করতে পারেন।


এটি একটি ভাল উত্তর নয়। প্রথম সমাধানটির জন্য একটি পৃষ্ঠা পুনরায় লোড এবং একটি ফর্ম জমা প্রয়োজন। দ্বিতীয় সমাধানটি একটি পপআপ (ack!) খোলে এবং ক্লায়েন্টের পক্ষ থেকে এটি "দ্রুত" বন্ধ করে দেয়? -1
বেন

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

স্প্যামবটস একটি লুকানো ক্ষেত্রেও পোস্ট করে।
জ্যানিস ভেনবার্গস

13

আপনি নোগ্রিপ্ট ট্যাগটি একবার দেখে নিতে চাইবেন।

<script type="text/javascript">
...some javascript script to insert data...
</script>
<noscript>
   <p>Access the <a href="http://someplace.com/data">data.</a></p>
</noscript>

12

নোগ্রিপ্ট ট্যাগটি ভালভাবে কাজ করে তবে অযথা জেএস ফাইলগুলি সরবরাহ করা চালিয়ে যাওয়ার জন্য প্রতিটি অতিরিক্ত পৃষ্ঠা অনুরোধের প্রয়োজন হবে, যেহেতু মূলত নোগ্রিপ্টটি ক্লায়েন্টের সাইড চেক।

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

জাভাস্ক্রিপ্ট ব্যবহার করে গতিরূপে 1x1 চিত্র যুক্ত করা একটি সম্ভাবনা হ'ল যেখানে src বৈশিষ্ট্যটি আসলে একটি সার্ভার সাইড স্ক্রিপ্ট। এই স্ক্রিপ্টটি যা করে তা বর্তমান ব্যবহারকারীর সেশনে সংরক্ষণ করা হয় যে জেএস সক্ষম হয়েছে ($ _SESSION ['js_enabled'])। তারপরে আপনি ব্রাউজারে 1x1 ফাঁকা চিত্র আউটপুট করতে পারেন। স্ক্রিপ্টটি ব্যবহারকারীদের জন্য জেএস অক্ষম করা চলবে না, এবং তাই $ _SESSION ['js_en सक्षम'] সেট করা হবে না। তারপরে এই ব্যবহারকারীর কাছে প্রদত্ত পরবর্তী পৃষ্ঠাগুলির জন্য আপনি আপনার সমস্ত বাহ্যিক জেএস ফাইল অন্তর্ভুক্ত করবেন কিনা তা আপনি সিদ্ধান্ত নিতে পারেন তবে আপনি সর্বদা চেকটি অন্তর্ভুক্ত করতে চাইবেন, কারণ আপনার কিছু ব্যবহারকারী নোস্ক্রিপ্ট ফায়ারফক্স অ্যাড-অন ব্যবহার করছেন বা জেএস থাকতে পারে অন্য কোনও কারণে অস্থায়ীভাবে অক্ষম করা হয়েছে।

আপনি সম্ভবত আপনার পৃষ্ঠার শেষের কাছাকাছি কোথাও এই চেকটি অন্তর্ভুক্ত করতে চাইবেন যাতে অতিরিক্ত এইচটিটিপি অনুরোধটি আপনার পৃষ্ঠার উপস্থাপনাটি কমিয়ে দেয় না।


12

এটি প্রতিটি পৃষ্ঠার হেড ট্যাগে যুক্ত করুন।

<noscript>
        <meta http-equiv="refresh" runat="server" id="mtaJSCheck" content="0;logon.aspx" />
</noscript>

সুতরাং তোমার আছে:

<head>
    <noscript>
        <meta http-equiv="refresh" runat="server" id="mtaJSCheck" content="0;logon.aspx" />
    </noscript>
</head>

জে ধন্যবাদ দিয়ে।


12

কারণ আমি প্রায়শই এই কৌশলটি ব্যবহার করার জন্য ব্রাউজারটিকে সার্থকভাবে কিছু দিতে চাই:

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

জাভাস্ক্রিপ্টের প্রয়োজন হবে এমন যে কোনও উপাদান, আমি একটি ট্যাগের মধ্যে এমন কিছু রাখি:

<span name="jsOnly" style="display: none;"></span>

তারপর আমার নথির শুরুতে আমি ব্যবহার .onloadবা document.readyএকটি লুপ মধ্যে getElementsByName('jsOnly')সেট করতে.style.display = ""; জেএস নির্ভর উপাদানগুলিকে আবার চালু । এইভাবে, নন-জেএস ব্রাউজারগুলিকে কখনই সাইটের জেএস নির্ভর অংশগুলি দেখতে হবে না এবং যদি তা থাকে, এটি প্রস্তুত হয়ে গেলে তা অবিলম্বে উপস্থিত হয়।

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


10

এটি হল "পরিষ্কার" সমাধান আইডি ব্যবহার:

<noscript>
    <style>
        body *{ /*hides all elements inside the body*/
            display: none;
        }
        h1{ /* even if this h1 is inside head tags it will be first hidden, so we have to display it again after all body elements are hidden*/
            display: block;
        }
    </style>
    <h1>JavaScript is not enabled, please check your browser settings.</h1>
</noscript>

9

একটি সাধারণ সমাধান হ'ল পৃষ্ঠাটি রিফ্রেশ করার জন্য নোসক্রিপ্টের সাথে মিলিতভাবে মেটা ট্যাগের সাথে এবং জাভাস্ক্রিপ্ট অক্ষম করা অবস্থায় সার্ভারকে অবহিত করার জন্য, যেমন:

<!DOCTYPE html>
<html lang="en">
    <head>
        <noscript>
            <meta http-equiv="refresh" content="0; /?javascript=false">
        </noscript>
        <meta charset="UTF-8"/>
        <title></title>
    </head>
</html>

উপরের উদাহরণে যখন জাভাস্ক্রিপ্ট অক্ষম করা হবে তখন ব্রাউজারটি 0 সেকেন্ডের মধ্যে ওয়েব সাইটের হোম পৃষ্ঠায় প্রত্যাবর্তিত হবে। এছাড়াও এটি সার্ভারে জাভাস্ক্রিপ্ট = মিথ্যা পরামিতি প্রেরণ করবে।

সার্ভারের সাইড স্ক্রিপ্ট যেমন নোড.জেএস বা পিএইচপি এর পরে প্যারামিটারটি পার্স করতে পারে এবং জাভাস্ক্রিপ্ট অক্ষম করা আছে তা জানতে পারে। এটি তখন ক্লায়েন্টকে ওয়েব সাইটের একটি বিশেষ অ জাভাস্ক্রিপ্ট সংস্করণ প্রেরণ করতে পারে।


8

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

নোগ্রিপ্টের মতো জিনিসগুলির বিষয়ে সাবধান থাকুন, যেখানে প্রথম অনুরোধ জাভাস্ক্রিপ্ট অক্ষম দেখাতে পারে, তবে ভবিষ্যতের অনুরোধগুলি এটি চালু করে।


5

উদাহরণস্বরূপ, আপনি ব্রাউজারটিকে নতুন, স্ক্রিপ্ট-বোঝা পৃষ্ঠাতে পুনর্নির্দেশের জন্য ডকুমেন্ট.লোকেশন = 'জাভা_পেজ.এইচটিএমএল' এর মতো কিছু ব্যবহার করতে পারেন। পুনঃনির্দেশে ব্যর্থতা বোঝায় যে জাভাস্ক্রিপ্ট অনুপলব্ধ, এমন ক্ষেত্রে আপনি হয় সিজিআই রো উটাইনগুলিতে অবলম্বন করতে পারেন বা ট্যাগগুলির মধ্যে উপযুক্ত কোড সন্নিবেশ করতে পারেন। (দ্রষ্টব্য: নসক্রিপ্টটি কেবল নেটস্কেপ নেভিগেটর 3.0.০ এবং তার বেশি ক্ষেত্রে উপলভ্য)

ধার http: Journal.com/faqs/jsfaq/how12.html


4

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


4

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


4

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


3

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


3

আপনি কেবল ছিনতাই করা অন ক্লিকে () ইভেন্ট হ্যান্ডলারটি কেন রাখবেন না যে কেবল জেএস সক্ষম থাকলেই তা চালিত হবে এবং ক্লিক / নির্বাচিত ইউআরএলে একটি পরামিতি (js = সত্য) সংযোজন করতে এটি ব্যবহার করুন (আপনি একটি ড্রপ ডাউন তালিকাও সনাক্ত করতে পারেন) এবং একটি লুকানো ফর্ম ক্ষেত্র যুক্ত করার মান পরিবর্তন করুন)। সুতরাং এখন যখন সার্ভার এই প্যারামিটারটি দেখে (জেএস = সত্য) এটি জানে যে জেএস সক্ষম হয়েছে এবং তারপরে আপনার অভিনব লজিক সার্ভার-সাইডটি করুন।
এর নীচের দিকটি হ'ল কোনও ব্যবহারকারী যখন আপনার সাইটে প্রথমবার আসে, বুকমার্ক, ইউআরএল, অনুসন্ধান ইঞ্জিন তৈরি URL- আপনাকে এটি সনাক্ত করতে হবে যে এটি একটি নতুন ব্যবহারকারী তাই ইউআরএল-এ যুক্ত এনভিপি অনুসন্ধান করবেন না, এবং ব্যবহারকারীটি জেএস সক্ষম / অক্ষম তা নির্ধারণ করতে সার্ভারকে পরবর্তী ক্লিকের জন্য অপেক্ষা করতে হবে। এছাড়াও, আরেকটি খারাপ দিকটি হ'ল ইউআরএলটি ব্রাউজারের URL এ শেষ হবে এবং যদি এই ব্যবহারকারী এই URL টি বুকমার্ক করে তবে এটিতে js = সত্য এনভিপি থাকবে, এমনকি ব্যবহারকারী জেএস সক্ষম না করে থাকলেও পরবর্তী ক্লিকে সার্ভারটি হবে ব্যবহারকারীর এখনও জেএস সক্ষম ছিল কি না তা জানার জন্য বুদ্ধিমান হবেন। দীর্ঘশ্বাস .. এই মজা ...


3

ব্যবহারকারীদের জাভাস্ক্রিপ্ট সক্ষম করতে বাধ্য করার জন্য, আমি একই নথিতে প্রতিটি লিঙ্কের 'href' বৈশিষ্ট্যটি সেট করেছি, যা ব্যবহারকারীকে জাভাস্ক্রিপ্টগুলি সক্ষম করতে বা ফায়ারফক্স ডাউনলোড করতে सूचित করে (যদি তারা জাভাস্ক্রিপ্টগুলি সক্ষম করতে না জানেন)। আমি লিঙ্কগুলির 'নাম' বৈশিষ্ট্যে প্রকৃত লিঙ্ক url সঞ্চিত করেছি এবং একটি বিশ্বব্যাপী অন্লিক ইভেন্টের সংজ্ঞা দিয়েছি যা 'নাম' বৈশিষ্ট্যটি পড়ে এবং সেখানে পৃষ্ঠাটি পুনঃনির্দেশ করে।

এটি আমার ব্যবহারকারী-বেসের পক্ষে ভাল কাজ করে, যদিও কিছুটা ফ্যাসিস্ট;)।


এবং ব্যবহারকারী যদি জেএস সক্ষম করে থাকে এবং আপনার প্রগতিশীল জাভাস্ক্রিপ্টটি কিক করার আগে লিঙ্কটিতে ক্লিক করে কিছুটা বিরক্ত হয় ...
সাইমন_উইভার

1
অবশ্যই, তবে এখনও কোনও সমস্যা রিপোর্ট করা হয়নি।
জান সাহিন

3

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

উদাহরণস্বরূপ, বলার জন্য আপনার সাইটটি তৈরি করুন <div id="nojs">This website doesn't work without JS</div>

তারপরে, আপনার স্ক্রিপ্টটি সহজভাবে এটি করবে document.getElementById('nojs').style.display = 'none';এবং এর সাধারণ জেএস ব্যবসা শুরু করবে।


এটি একটি দুর্দান্ত বিজোড় পদ্ধতির <নোগ্রিপ্ট> ট্যাগগুলি বিভিন্ন পাতায় এই পদ্ধতির সাহায্যে রক্ষণাবেক্ষণ করা আরও শক্ত you
zadubz

3

আমি এখানে পরিচয় করিয়ে দিয়েছি এমন একটি খাঁটি সার্ভার সাইড সলিউশন ব্যবহার করে কুকিজ পরীক্ষা করুন এবং তারপরে Jquery.Cookie ব্যবহার করে একটি কুকি ফেলে জাভাস্ক্রিপ্টের জন্য চেক করুন এবং তারপরে এইভাবে কুকির জন্য পরীক্ষা করুন আপনি কুকিজ এবং জাভাস্ক্রিপ্ট উভয়ই পরীক্ষা করে দেখুন


3

কিছু ক্ষেত্রে, এটি পিছনের দিকে করা যথেষ্ট হতে পারে। জাভাস্ক্রিপ্ট ব্যবহার করে একটি শ্রেণি যুক্ত করুন:

// Jquery
$('body').addClass('js-enabled');

/* CSS */
.menu-mobile {display:none;}
body.js-enabled .menu-mobile {display:block;}

এটি জটিল কোনও কিছুর উপর রক্ষণাবেক্ষণের সমস্যা তৈরি করতে পারে তবে এটি কিছু জিনিসের জন্য একটি সহজ সমাধান। এটি কখন লোড হবে না তা সনাক্ত করার চেষ্টা করার পরিবর্তে, কখন এটি লোড হবে সে অনুযায়ী স্টাইল করুন।


3

মোট ব্যবহারকারীর দ্বারা জাভাস্ক্রিপ্ট অক্ষম করে কতজন প্রকৃত ব্যবহারকারী আমার সাইটে যান তার নির্ভরযোগ্য পরিসংখ্যান পেতে আমার সমাধান যুক্ত করতে চাই। এই সুবিধাগুলি সহ চেকটি প্রতি সেশনে এক সময় করা হয়:

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

আমার কোডটি অজ্যাক্সের সাথে পিএইচপি, মাইএসকিএল এবং জ্যাকুরি ব্যবহার করে তবে অন্যান্য লুঙ্গুঞ্জের সাথে মানিয়ে নেওয়া যেতে পারে:

আপনার ডিবিতে এটির মতো একটি টেবিল তৈরি করুন:

CREATE TABLE IF NOT EXISTS `log_JS` (
  `logJS_id` int(11) NOT NULL AUTO_INCREMENT,
  `data_ins` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `session_id` varchar(50) NOT NULL,
  `JS_ON` tinyint(1) NOT NULL DEFAULT '0',
  `agent` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`logJS_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

সেশন_স্টার্ট () বা সমতুল্য (jquery প্রয়োজনীয়) ব্যবহারের পরে প্রতিটি পৃষ্ঠায় এটি যুক্ত করুন:

<?  if (!isset($_SESSION["JSTest"]))
    { 
        mysql_query("INSERT INTO log_JS (session_id, agent) VALUES ('" . mysql_real_escape_string(session_id()) . "', '" . mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']). "')"); 
        $_SESSION["JSTest"] = 1; // One time per session
        ?>
        <script type="text/javascript">
            $(document).ready(function() { $.get('JSOK.php'); });
        </script>
        <?
    }
?>

JSOK.php পৃষ্ঠাটি তৈরি করুন:

<?
include_once("[DB connection file].php");   
mysql_query("UPDATE log_JS SET JS_ON = 1 WHERE session_id = '" . mysql_real_escape_string(session_id()) . "'");

3

সিএসএস এবং জাভাস্ক্রিপ্ট নিজেই ব্যবহার করে আমি অন্য পদ্ধতির সন্ধান করেছি।
এটি কেবল ক্লাস এবং আইডির সাথে টিঙ্কারিং শুরু করার জন্য।

সিএসএস স্নিপেট:
1. একটি সিএসএস আইডি নিয়ম তৈরি করুন, এবং এটির নাম দিন #jsDis।
2. শরীরের উপাদানগুলির পরে কোনও পাঠ্য উত্পন্ন করতে "সামগ্রী" বৈশিষ্ট্যটি ব্যবহার করুন। (আপনি নিজের ইচ্ছামতো স্টাইল করতে পারেন)।
3 য় একটি সিএসএস আইডি নিয়ম তৈরি করুন এবং এটির নাম দিন #jsEn, এবং এটি স্টাইল করুন। (সরলতার জন্য, আমি আমার # জেএসইন রুলকে একটি ভিন্ন পটভূমির রঙ দিয়েছি।

<style>
#jsDis:after {
    content:"Javascript is Disable. Please turn it ON!";
    font:bold 11px Verdana;
    color:#FF0000;
}

#jsEn {
    background-color:#dedede;
}

#jsEn:after {
    content:"Javascript is Enable. Well Done!";
    font:bold 11px Verdana;
    color:#333333;
}
</style>

জাভাস্ক্রিপ্ট স্নিপেট:
1. একটি ফাংশন তৈরি করুন।
২. getElementById সহ বডি আইডিটি ধরুন এবং এটিকে একটি ভেরিয়েবলের জন্য বরাদ্দ করুন।
৩. জেএস ফাংশন 'সেটঅ্যাট্রিবিউট' ব্যবহার করে, BODY উপাদানটির আইডি বৈশিষ্ট্যের মান পরিবর্তন করুন।

<script>
function jsOn() {
    var chgID = document.getElementById('jsDis');
    chgID.setAttribute('id', 'jsEn');
}
</script>

এইচটিএমএল অংশ।
1. #jsDis এর আইডির সাথে বডি উপাদান উপাদানটির নাম দিন।
২. ফাংশনটির নাম সহ ওলোনড ইভেন্টটি যুক্ত করুন। (JSON ())।

<body id="jsDis" onLoad="jsOn()">

BODY ট্যাগের কারণে # jsDis এর আইডি দেওয়া হয়েছে:
- জাভাস্ক্রিপ্ট সক্ষম করা থাকলে এটি নিজেই BODY ট্যাগের বৈশিষ্ট্যটি পরিবর্তন করতে পারে।
- জাভাস্ক্রিপ্ট যদি অক্ষম হয় তবে এটি CSS বিষয়বস্তু: 'রুল টেক্সট দেখায়।

আপনি একটি # র‍্যাপার ধারক বা জেএস ব্যবহার করে এমন কোনও ডিআইভির সাথে চারপাশে খেলতে পারেন।

আশা করি এটি ধারণা পেতে সহায়তা করবে।


2

নোগ্রিপ্টের অভ্যন্তরে মেটাতে একটি রিফ্রেশ যুক্ত করা ভাল ধারণা নয়।

  1. কারণ নোগ্রিপ্ট ট্যাগটি এক্সএইচটিএমএল অনুগত নয়

  2. "রিফ্রেশ" গুণাবলীটি মানহীন, এবং এটি ব্যবহার করা উচিত নয়। "রিফ্রেশ" ব্যবহারকারী থেকে দূরে একটি পৃষ্ঠার নিয়ন্ত্রণ নেয়। "রিফ্রেশ" ব্যবহার করা ডাব্লু 3 সি এর ওয়েব সামগ্রী অ্যাক্সেসিবিলিটি গাইডলাইনগুলিতে ব্যর্থতার কারণ ঘটবে --- উল্লেখ http://www.w3schools.com/TAGS/att_meta_http_equiv.asp


এক্সএইচটিএমএল সম্পর্কে কেউ কিছু বলেনি। <নোগ্রিপ্ট> পুরোপুরি বৈধ এইচটিএমএল 4.01 কঠোর।
টম

2
এক্স-এইচটিএমএল ১.০ এবং এক্সএইচটিএমএল ১.১ এ নোগ্রিপ্টও পুরোপুরি বৈধ। এটিতে মেটা উপাদান থাকতে পারে না এবং এটি প্রগতিশীল বর্ধনের পক্ষে এড়ানো উচিত, তবে এটি ভাষার অংশ part
কুইন্টিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.