আপনার কি আপনার <script> ট্যাগগুলিতে নির্দিষ্ট পাঠ / জাভাস্ক্রিপ্টের প্রয়োজন?


157

আমি কোথাও পড়েছি যে আপনার আর স্ক্রিপ্ট ট্যাগগুলির মতো type="text/javascript"অদ্ভুত CDATAএবং <!--জিনিসগুলির দরকার নেই । সুতরাং, পরিবর্তে:

<script type="text/javascript">
//<![CDATA[
<!--

    //your script here

-->
//]]>
</script>

আপনি ঠিক করবেন:

<script>
    //your script here
</script>

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


নতুন ব্রাউজারগুলির জন্য, তবে পুরানোগুলিতে (যদি এখনও বিদ্যমান থাকে) <! - -> প্রয়োজন। কিছু অ্যাপ্লিকেশন টাইপ সম্পর্কে যদি বাদ না দেওয়া হয় তবে ডানটির প্রয়োজন।
বকুদান


1
যতবার আমি text/javascriptনির্দিষ্ট ফাইল যুক্ত করি, আমি এটি সরিয়ে ফেলি। গোলমাল।
মাফিন ম্যান

এখানে একটি খুব সম্পর্কিত পোস্টের গৃহীত উত্তরে এইচটিএমএল 5 নির্দেশিকা সম্পর্কে আপ টু ডেট তথ্য রয়েছে।
আরবিটি

উত্তর:


135

ট্যাগটিতে ক্রকফোর্ডের লেখার আপটি<script> দেখুন , উল্লেখযোগ্যভাবে:

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

...

type="text/javascript"

এই বৈশিষ্ট্যটি isচ্ছিক। নেটস্কেপ 2 সাল থেকে সমস্ত ব্রাউজারে ডিফল্ট প্রোগ্রামিং ভাষাটি জাভাস্ক্রিপ্ট হয়েছে। এক্সএইচটিএমএলে এই বৈশিষ্ট্যটি প্রয়োজনীয় এবং অপ্রয়োজনীয়। এইচটিএমএল এ এটি ছেড়ে দেওয়া ভাল। ব্রাউজার জানে কী করতে হবে।


75
প্রয়োজনীয় এবং অপ্রয়োজনীয়? আমি কিছু অনুপস্থিত করছি?
ইজকাটা

17
@ ইজকাটা, এটি বৈধতার জন্য প্রয়োজনীয়, তবে এর কোনও প্রভাব নেই।
বিডুকস

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

18
@ স্লোবাম, এইচটিএমএল 5 অনুচ্ছেদে জানায় যে এটি জাভাস্ক্রিপ্টের ডিফল্ট । যদি নতুন স্ক্রিপ্টের ধরণ থাকে তবে সেগুলি কেবল নতুন ব্রাউজার সংস্করণগুলিতে প্রয়োগ করা হবে যা অনুমিতি থেকে সেই ডিফল্টটিকে সমর্থন করে।
14

8
যদি RubyScriptজনপ্রিয় হয়ে ওঠে, এটি শেষ হয়ে যাবে .rbscriptএবং ব্রাউজার সেই অনুযায়ী কাজ করবে।
কર્ક স্ট্রোবেক

45

এটি ক্রকফোর্ডের একটি সুপারিশ। আমি জানি আমি এটি অন্য কোথাও প্রতিধ্বনিত হতে দেখেছি (পিপিকে সম্ভবত?)। এইচটিএমএল 5 স্পেক এর প্রয়োজন হয় না।

অদ্ভুতভাবে, আপনি মূল্যায়ন করতে চান না যে ব্লকগুলি চিহ্নিত করতে "টাইপ" বৈশিষ্ট্যটি ব্যবহার করা কিছুটা আওরতে পরিণত হয়েছে :<script>

<script type='text/html-template'>
  <div> this is a template </div>
</script>

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


আমি পুরোপুরি বুঝতে পারি না। দয়া করে ব্যাখ্যা করুন, type="text/html"আদৌ কী text/javascriptবোঝায় এবং এর অর্থ কী .. ধন্যবাদ
টুডো

4
@ টাজোটোডো "টেক্সট / এইচটিএমএল" এর অর্থ কী তা খুব গুরুত্বপূর্ণ নয়; গুরুত্বপূর্ণ বিষয় এটি নয় না "পাঠ্য / JavaScript", ব্রাউজার সম্পূর্ণরূপে বিষয়বস্তু উপেক্ষা করা হবে <script>ব্লক। যাইহোক, <script> হবে , DOM এর অংশ হয়ে যাতে অন্য জাভাস্ক্রিপ্ট কোড তাদের খুঁজে বার এবং তাদের বিষয়বস্তু নিষ্কাশন করতে পারেন।
পয়েন্টি

এটি একটি আকর্ষণীয় হ্যাক। যদিও আমি এটির জন্য ব্যবহার করব তা নিশ্চিত নয়।
brennanyoung

2
w3schools : In HTML5, the type attribute is no longer required for JavaScript. The default value is "application/javascript".
আমিন সোহেলী

19

এইচটিএমএল 5 এর type="text/javascript"(এটি ডিফল্ট) প্রয়োজন নেই।

CDATA স্ক্রিপ্টটিতে যদি কোনও HTML অক্ষর থাকে (যেমন '<' এবং '>') থাকে তবে কেবল এক্সএইচটিএমএল পৃষ্ঠাগুলির জন্য প্রয়োজনীয়।

<!-- শুধুমাত্র ওএলডি ব্রাউজারগুলির জন্য প্রয়োজন।


3

ঠিক আছে, আমি বলার জন্য প্রলুব্ধ হয়েছি যে কেউ আর ব্যবহার করছে text/javascriptনা, এবং এমনকি সংশোধন সরঞ্জামগুলি সম্ভবত এটি সরিয়ে ফেলবে ... প্রকৃতপক্ষে, ফেসবুক এসডিকে ডকুমেন্টেশন কেবল নির্দিষ্ট করে <script>

তবে গুগল এসডিকে ডকুমেন্টেশন এখনও আছে text/javascript

অ্যামাজন এসডিকে ডকুমেন্টেশন এখনও আছে text/javascript

লিঙ্কডিন এপিআই ডকুমেন্টেশন এখনও আছে text/javascript

ইনস্টাগ্রাম এখনও ব্যবহার করছে text/javascript


3

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

মতে এইচটিএমএল 4.01 স্পেসিফিকেশন

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

তবে এইচটিএমএল 5 text/javascript এ ডিফল্ট টাইপ থাকে, তাই আপনি বাদ দিতে পারেন

টাইপ অ্যাট্রিবিউট স্ক্রিপ্ট বা ডেটা বিন্যাস ভাষার দেয়। বৈশিষ্ট্যটি উপস্থিত থাকলে, এর মানটি অবশ্যই একটি বৈধ মাইম টাইম হতে হবে। চরসেট প্যারামিটার অবশ্যই নির্দিষ্ট করা উচিত নয়। ডিফল্ট, যা বৈশিষ্ট্যটি অনুপস্থিত থাকলে ব্যবহৃত হয়, এটি হ'ল "পাঠ্য / জাভাস্ক্রিপ্ট"।


1
অন্য কথায়, এটি বাদ দেওয়া পুরানো ব্রাউজারগুলিতে ত্রুটি সৃষ্টি করতে পারে যা HTML5 সমর্থন করে না
সার্জে

2

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


1

scriptহেডারের উপর ভিত্তি করে ব্লকটি সঠিকভাবে ব্যাখ্যা করা ব্রাউজারের উপর নির্ভর করে, আমি বিশ্বাস করি, typeগুণাবলীর উপর নির্ভর করে না । সুতরাং আপনার প্রশ্নের উত্তর দেওয়ার জন্য, আধুনিক ব্রাউজারগুলির জন্য এটির প্রয়োজন নেই (আমি আই 7 +, এফএফ, ওয়েবকিট বলছি)। আপনি যদি এর চেয়ে পুরানো ব্রাউজারগুলিকে সমর্থন করছেন ... আপনার জন্য আমি দুঃখিত অনুভব করছি =)


2
385+ মিলিয়ন ব্যবহারকারীদের সাথে চীনকে ভুলে যাবেন না যার মধ্যে অনেকগুলি এখনও আই 6 ব্যবহার করে। নেটমার্কেটরেড.কম
চেইনওয়ার্ক

3
চীনের কড়া ইন্টারনেট নীতি জানার সম্ভাবনা
হ'ল

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

1

আপনি যদি এসভিজির ভিতরে কোনও স্ক্রিপ্ট ট্যাগ রাখছেন তবে আপনাকে অবশ্যই ধরণের বৈশিষ্ট্য নির্দিষ্ট করতে হবে । এবং এটি "text/ecmascript"বরং হওয়া উচিত "text/javascript"

যদি আপনার স্ক্রিপ্টটি ইনলাইন (লিঙ্কযুক্ত নয়) থাকে তবে আপনাকে স্ক্রিপ্টের বডিটিও একটি সিডিএটিএ ঘোষণায় আবৃত করতে হবে। এসভিজি (এবং অন্যান্য এক্সএমএল ভেরিয়েন্ট) এর জন্য ইনলাইন স্ক্রিপ্ট বয়লারপ্লেটটি এইভাবে

<script type="text/ecmascript">
<![CDATA[
// your javascript code goes here
]]>
</script>

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

"পরিবেশটিকে তার বিপরীতে পরিবর্তন করুন এবং জ্ঞানের প্রতিটি অংশ মূর্খতার মধ্যে সবচেয়ে খারাপ হয়ে যায়।" - আশ্বি


1
ভাল কল. কিছু জটিল এসভিজির উপর সবেমাত্র কাজ করা হয়েছে এবং এটি সত্যই ঘটনা!
ডেভ এভারিট

1

HTML এইচটিএমএল 5 স্পেসিফিকেশন লেখকদের অনর্থক মাইম টাইম সরবরাহ না করে গুণটি বাদ দিতে অনুরোধ করে। MDN

এমআইএমই চোদা স্ট্যান্ডার্ড জাভাস্ক্রিপ্ট কোনো MIME প্রকার (ব্যবহার সার্ভ করা দেয় বহুমুখী ইন্টারনেট মেল এক্সটেনশানগুলি ) যে নিম্নলিখিত মেলে:

<script type="application/javascript"></script>
<script type="application/ecmascript"></script>

<script type="text/javascript"></script>
<script type="text/ecmascript"></script>

0

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


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

আমি অতি সাম্প্রতিক স্থিতিশীল এফএফ রিলিজ ব্যবহার করছি এবং মনে হচ্ছে পাঠ্য / জাভাস্ক্রিপ্টের ঘোষণা ছাড়াই পার্সিং করতে সমস্যা হয়েছে, আমি jQuery বিটিডব্লু ব্যবহার করি তবে এতে কোনও পার্থক্য হওয়া উচিত নয়।
মাইকেল

ভাল আমি আমার সম্পূর্ণ ওয়েব অ্যাপ্লিকেশনটি স্ক্রিপ্ট ট্যাগগুলি দিয়ে চালাই যা কেবল প্লেইন <script>, কোনও "ভাষা" এবং কোনও "টাইপ" নেই এবং তারা সমস্ত ব্রাউজারগুলিতে দুর্দান্ত কাজ করে। (ভাল, সমস্ত যুক্তিসঙ্গত বিষয়গুলি: এফএফ, ক্রোম, সাফারি, আইই, অপেরা।)
পয়েন্টি

1
@ পয়েন্টটিকে দেখে মনে হচ্ছে ফাদারস্টোরম কেবল কেন এমন হচ্ছে তার একটি উত্তর পোস্ট করেছে। সুতরাং আপনার মন্তব্যগুলি ভুল বলে মনে হচ্ছে।
মাইকেল

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

0

type="text/javascript" : এইচটিএমএল 4 এবং এক্সএইচটিএমএলে প্রয়োজনীয়, তবে এইচটিএমএল 5 এ .চ্ছিক।

CDATA : এক্সএইচটিএমএলে প্রয়োজনীয়।

<!--: খুব পুরানো ব্রাউজারগুলি থেকে জাভাস্ক্রিপ্ট লুকানোর জন্য ব্যবহৃত হয় Used উদাহরণস্বরূপ: নেটস্কেপ 1 এবং ইন্টারনেট এক্সপ্লোরার 2, যার মধ্যে কেউই আর ব্যবহার করে না।

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