ද CDATA තිර රචනය ටැග් හා විට එසේ නම් මෙතෙක් අවශ්ය ටැග?
වෙනත් වචන වලින් කිවහොත්, මෙය කවදාද සහ කොහේද:
<script type="text/javascript">
//<![CDATA[
...code...
//]]>
</script>
මීට වඩා සුදුසු:
<script type="text/javascript">
...code...
</script>
ද CDATA තිර රචනය ටැග් හා විට එසේ නම් මෙතෙක් අවශ්ය ටැග?
වෙනත් වචන වලින් කිවහොත්, මෙය කවදාද සහ කොහේද:
<script type="text/javascript">
//<![CDATA[
...code...
//]]>
</script>
මීට වඩා සුදුසු:
<script type="text/javascript">
...code...
</script>
Answers:
(ක XHTML පිටුව XML ලෙස අර්ථ විට උදා:) ඔබ XML ලෙස parse ඔබේ ලියවිල්ල අවශ්ය නම් ඒ CDATA කොටස අවශ්ය සහ ඔබ ප්රායෝගික ලිවීමට හැකි විය අවශ්ය i<10
හා a && b
වෙනුවට i<10
සහa && b
XHTML කියවූ චරිතය දත්ත ලෙස JavaScript කේතය විග්රහ කළ ඇත ලෙස, පෙරනිමියෙන් අක්ෂර දත්ත වලට ප්රතිවිරුද්ධව. මෙම බාහිර ගොනු ගබඩා කර ඇති බව පිටපත් සමග ප්රශ්නයක් නැහැ, නමුත් XHTML ඕනෑම පේළිගත JavaScript ඔබට ඇත සමහර විට එය CDATA කොටස භාවිතා කිරීමට අවශ්ය.
බොහෝ XHTML පිටු කිසි විටෙකත් XML ලෙස විග්රහ කිරීමට අදහස් නොකළ බව සලකන්න, මෙය ගැටළුවක් නොවනු ඇත.
මෙම විෂය පිළිබඳ හොඳ ලිවීමක් සඳහා, https://web.archive.org/web/20140304083226/http://javascript.about.com/library/blxhtml.htm බලන්න
&
සහ නම් <
, ඔබට CDATA අංශයක් අවශ්ය නොවේ; එය HTML සහ XHTML යන දෙඅංශයෙන්ම හොඳින් ක්රියාත්මක වේ. සැලකිය යුතු කේත සියල්ලම බාහිර ස්ක්රිප්ට් තුළට දමා ඉන්ලයින් ස්ක්රිප්ට් භාවිතා කිරීමෙන් ඔබට පහසුවෙන් මෙය සාක්ෂාත් කරගත හැකිය. ආරම්භක විචල්යයන් ( ඔබට අවශ්ය නම් වචනාර්ථයෙන් පැන යාම &
/ <
සිට \x26
/ \x3C
දක්වා).
බ්රව්සර් සලකුණු කිරීම XML ලෙස සලකන විට:
<script>
<![CDATA[
...code...
]]>
</script>
බ්රව්සර් සලකුණු කිරීම HTML ලෙස සලකන විට:
<script>
...code...
</script>
බ්රව්සර් සලකුණු කිරීම HTML ලෙස සලකන විට සහ ඔබේ XHTML 1.0 සලකුණු කිරීම (උදාහරණයක් ලෙස) වලංගු කිරීමට ඔබට අවශ්යය.
<script>
//<![CDATA[
...code...
//]]>
</script>
/* ... */
එසේ නොමැතිනම් රේඛා බිඳීම් ඉවත් කළහොත් කේතය කැඩී යනු ඇත
HTML විග්රහකයෙක් පිටපත අතර <script>
සහ එහි සෑම දෙයක්ම සලකනු ඇත </script>
. සමහර ක්රියාත්මක කිරීම් සඳහා නිවැරදි සංවෘත ටැගයක් අවශ්ය නොවේ; ඒවා ස්ක්රිප්ට් අර්ථ නිරූපණය " </
" හි නතර කරයි , එය පිරිවිතරයන්ට අනුව නිවැරදි ය .
HTML5 හි යාවත්කාලීන කරන්න , සහ වර්තමාන බ්රව්සර් සමඟ, එය තවදුරටත් එසේ නොවේ.
එබැවින්, HTML හි මෙය කළ නොහැක :
<script>
var x = '</script>';
alert(x)
</script>
ඒ CDATA
අංශ සඳහා සියලු දී කිසිදු බලපෑමක් . ඔබ ලිවිය යුත්තේ එබැවිනි
var x = '<' + '/script>'; // or
var x = '<\/script>';
හෝ ඊට සමාන ය.
සේවය කරන ලද XHTML ගොනු සඳහාද මෙය අදාළ වේ text/html
. (IE XML අන්තර්ගත වර්ග සඳහා සහය නොදක්වන බැවින් මෙය බොහෝ දුරට සත්ය වේ.)
XML හි, විවිධ නීති අදාළ වේ. (අයිඊ නොවන) බ්රව්සර් භාවිතා කරන්නේ එක්ස්එම්එල් පාර්සර් ය.
XML විග්රහකය වෙත, script
ටැගයක් වෙනත් ටැගයකට වඩා හොඳ නැත. විශේෂයෙන්, ස්ක්රිප්ට් නෝඩයක පෙළ නොවන ළමා නෝඩ් අඩංගු විය හැකිය <
. සහ &
ලකුණක් අක්ෂර වස්තුවක් දක්වයි.
එබැවින්, XHTML හි මෙය කළ නොහැක :
<script>
if (a<b && c<d) {
alert('Hooray');
}
</script>
මෙය වටා වැඩ කිරීම සඳහා, ඔබට සම්පූර්ණ පිටපත CDATA
කොටසකින් ඔතා ගත හැකිය . මෙය විග්රහකයාට මෙසේ කියයි: 'මෙම කොටසේදී " <
" සහ " &
" පාලක අක්ෂර ලෙස නොසලකන්න .' ජාවාස්ක්රිප්ට් එන්ජිම " <![CDATA[
" සහ " ]]>
" ලකුණු අර්ථ නිරූපණය කිරීමෙන් වලක්වා ගැනීම සඳහා , ඔබට ඒවා අදහස් දැක්වීම් වලින් ඔතා ගත හැකිය.
ඔබගේ ස්ක්රිප්ටයේ කිසිදු " <
" හෝ " &
" නොමැති නම්, ඔබට CDATA
කෙසේ හෝ කොටසක් අවශ්ය නොවේ .
</
.
<script>var b = "<b>bold</b>";</script>
වලංගු කිරීමට අසමත් නමුත් ඔබේ පිළිතුර කියවා <script>var b = "<b>bold<\/b>";</script>
එය නිවැරදි කිරීමට වෙනස් කිරීමෙන් පසුව .
මූලික වශයෙන් එය XHTML සහ HTML යන දෙකම ලියවිල්ලක් ලිවීමට ඉඩ දීමයි. ගැටළුව වන්නේ XHTML තුළ, XML පාර්සර් විසින් ස්ක්රිප්ට් ටැගයේ ඇති &, <,> අක්ෂර අර්ථ නිරූපණය කර XML විග්රහ කිරීමේ දෝෂයක් ඇති කරයි. එබැවින්, ඔබට ඔබේ ජාවාස්ක්රිප්ට් ආයතන සමඟ ලිවිය හැකිය, උදා:
if (a > b) alert('hello world');
නමුත් මෙය ප්රායෝගික නැත. විශාලතම ගැටළුව නම්, ඔබ HTML හි පිටුව කියවන්නේ නම්, ටැග් ස්ක්රිප්ට් CDATA 'පෙරනිමියෙන්' ලෙස සලකනු ලබන අතර එවැනි ජාවාස්ක්රිප්ට් ක්රියාත්මක නොවනු ඇත. එබැවින්, XHTML සහ HTML පාර්සර් භාවිතා කරමින් එකම පිටුව නිවැරදි වීමට ඔබට අවශ්ය නම්, ඔබට ස්ක්රිප්ට් ටැගය XHTML හි CDATA මූලද්රව්යයේ ඇතුළත් කළ යුතුය, නමුත් එය HTML හි ඇතුළත් කිරීමට අවශ්ය නොවේ.
මෙම උපක්රමය CDATA මූලද්රව්යයක ආරම්භය ජාවාස්ක්රිප්ට් විවරණයක් ලෙස සලකුණු කරයි; HTML හි ජාවාස්ක්රිප්ට් විග්රහකය CDATA ටැගය නොසලකා හරියි (එය විවරණයකි). XHTML හි, XML විග්රහකය (එය ජාවාස්ක්රිප්ටයට පෙර ක්රියාත්මක වේ) එය හඳුනාගෙන CDATA අවසානය දක්වා CDATA ලෙස සලකයි.
එපා නොවන HTML4 දී CDATA භාවිතා එහෙත් ඔබ කළ යුතු XHTML දී CDATA භාවිතා කළ යුතුය ඔබ <සහ> වැනි unescaped සංකේත තිබේ නම් XML යක CDATA භාවිතා කරන්න.
බාහිරව යොමු කරනවාට වඩා ඔබේ පිටුවට ජාවාස්ක්රිප්ට් ඇතුළත් කර ඇති විට XHTML වලංගුකරණය නිවැරදිව ක්රියාත්මක වන බව සහතික කිරීම.
ඔබේ පිටුව XML සලකුණු අවශ්යතා වලට අනුකූල වීම XHTML ට අවශ්ය වේ. ජාවාස්ක්රිප්ට් හි විශේෂ අරුතක් ඇති අක්ෂර අඩංගු විය හැකි බැවින්, වලංගු කිරීම එය විකෘති ලෙස සලකුණු නොකරන බවට වග බලා ගැනීම සඳහා ඔබ එය CDATA හි ඔතා තිබිය යුතුය.
වෙබයේ ඇති HTML පිටු සමඟ ඔබට අවශ්ය ජාවාස්ක්රිප්ට් සහ ටැග් අතර ඇතුළත් කළ හැකිය. ඔබේ වෙබ් පිටුවේ ඇති HTML වලංගු භාවය ඔබ වලංගු කරන විට, ජාවාස්ක්රිප්ට් අන්තර්ගතය CDATA (අක්ෂර දත්ත) ලෙස සලකනු ලබන අතර එම නිසා එය වලංගු කරන්නා විසින් නොසලකා හරිනු ලැබේ. ඔබේ වෙබ් පිටුව සැකසීමේදී වඩාත් නවීන XHTML ප්රමිතීන් අනුගමනය කරන්නේ නම් එය සත්ය නොවේ. XHTML සමඟ ස්ක්රිප්ට් ටැග් අතර කේතය PCDATA (විග්රහ කරන ලද අක්ෂර දත්ත) ලෙස සලකනු ලැබේ, එබැවින් එය වලංගු කරන්නා විසින් සකසනු ලැබේ.
මේ හේතුව නිසා, ඔබේ වෙබ් පිටුව 'බිඳ දැමීම' නොකර ඔබේ පිටුවේ ඇති ස්ක්රිප්ට් ටැග් අතර ජාවාස්ක්රිප්ට් ඇතුළත් කළ නොහැක (අවම වශයෙන් වලංගු කරන්නා සැලකිලිමත් වන තාක් දුරට).
ඔබට CDATA ගැන වැඩි විස්තර මෙතැනින් සහ XHTML ගැන වැඩි විස්තර දැනගත හැකිය .
CDATA ඇඟවුම් කරන්නේ එහි අන්තර්ගතය XML නොවන බවයි.
විකිපීඩියාව පිළිබඳ පැහැදිලි කිරීමක් මෙන්න
ඔබ දැඩි XHTML අනුකූලතාවයක් සඳහා යන විට, ඔබට CDATA අවශ්ය වන්නේ ඊට වඩා අඩුවෙන් වන අතර ඇම්පියර්සෑන්ඩ් අවලංගු අක්ෂර ලෙස සලකුණු නොකෙරේ.
xhtml වලංගු කිරීමේදී xml දෝෂ මඟහරවා ගැනීමට.
ඕනෑම XML උපභාෂාවකදී CDATA අවශ්ය වේ, මන්ද XML නෝඩයක් තුළ ඇති පෙළ ජාවාස්ක්රිප්ට් ලෙස ඇගයීමට පෙර ළමා අංගයක් ලෙස සලකනු ලැබේ. ජේඑස්ලින්ට් රීජෙක්ස් වල චරිතය ගැන පැමිණිලි කිරීමට හේතුව <
මෙයයි.
යොමුව
ඔබට එය වලංගු කිරීමට අවශ්ය වූ විට (XML / XHTML වලින් - ස්තූතියි, ලොරන් සේගල් ).
ඒ ආකාරයෙන් පැරණි බ්රව්සරය ජාවාස්ක්රිප්ට් කේතය විග්රහ නොකරන අතර පිටුව කැඩී යන්නේ නැත.
පසුගාමී අනුකූලතාව. ගොටා ඒකට කැමතියි.