Href অ্যাট্রিবিউট ছাড়া একটি অ্যাঙ্কর ট্যাগ কি নিরাপদ?


232

এ্যাটারিবিটিটি যুক্ত hrefনা করে এবং একটি জাভাস্ক্রিপ্ট ক্লিক ইভেন্ট হ্যান্ডলার ব্যবহার না করে অ্যাঙ্কর ট্যাগ ব্যবহার করা কি ঠিক আছে ? সুতরাং আমি hrefসম্পূর্ণরূপে বাদ দিতে পারি , এটি খালিও নেই ( href="")।


1
অনক্লিক ইভেন্টটি এখনও ট্রিগার করে? আমি স্প্যান / ডিভের পরিবর্তে অ্যাঙ্কর ট্যাগগুলি ব্যবহার করতে চাই কারণ এটি কেবলমাত্র যুক্তিসঙ্গত ট্যাগ যা সিএসএস সমর্থন করে: আইই
জন

3
@ মার্টিন অ্যাঙ্করগুলি কীবোর্ডের মাধ্যমে অ্যাক্সেস এবং সক্রিয় করা যেতে পারে। নিয়মিত স্প্যান উপাদানগুলি পারেন না। এখানে দেখুন: jsfiddle.net/simevidas/4DTxv/2
Vidas


2
এইচটিএমএল 5-তে, href অ্যাট্রিবিউট ব্যতীত অ্যাঙ্করগুলি স্থানধারক হাইপারলিংকগুলি: dev.w3.org/html5/markup/a.html
Ignacio Lago

1
আপনি কি নিশ্চিত যে পরিবর্তে আপনি একটি বোতাম চান না? এর অর্থ হ'ল ট্যাবিং ইত্যাদি কাজ করে এবং প্রয়োজনে লিঙ্কগুলির মতো দেখতে আপনার বোতামগুলি স্টাইল করতে পারেন। স্বীকার্য আমি আইইয়ের হোভার সম্পর্কে জানি না।
robbie_c

উত্তর:


217

এইচটিএমএল 5 এ, aকোনও hrefবৈশিষ্ট্য ছাড়াই একটি উপাদান ব্যবহার করা বৈধ। এটি একটি "স্থানধারক হাইপারলিঙ্ক" হিসাবে বিবেচিত।

উদাহরণ:

<a>previous</a>

ডাব্লু 3 সি অ্যাঙ্কর ট্যাগ রেফারেন্স পৃষ্ঠাতে "স্থানধারক হাইপারলিংক" সন্ধান করুন: https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element

এবং এটি এখানে উইকিতেও উল্লেখ করা হয়েছে: https://www.w3.org/wiki/Elements/a

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

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

আরো দেখুন:


3
"স্থানধারক লিঙ্ক" এর সংজ্ঞা কী?
জিউম ফক্স

14
দয়া করে মনে রাখবেন একটি ছাড়া নিন শৈলী স্বয়ংক্রিয়ভাবে উপাদানে যুক্ত হবে না। hrefcursor: pointer
লুক

38

এটি ঠিক আছে, তবে একই সাথে কিছু ব্রাউজার ধীর হয়ে যেতে পারে।

http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/

আমার পরামর্শ <a href="#"> </a> ব্যবহার

আপনি যদি জিকুয়েরি ব্যবহার করে থাকেন তবে এগুলি ব্যবহার করতে ভুলবেন না

.click(function(event){
    event.preventDefault();
    // Click code here...
});

7
আমি href = "#" ব্যবহার করতে পারি না কারণ আমি এজাক্স বুকমার্কিং ব্যবহার করছি যা হ্যাশ পরিবর্তন করার সাথে জড়িত, আমি কী করতে পারি?
জন

5
জাভাস্ক্রিপ্ট ব্যবহার করার পরিবর্তে: অকার্যকর (0); href এর ভিতরে আমি জাভাস্ক্রিপ্ট ব্যবহার করি :; এটি লিখতে খাটো।
মিত্র

16
পারফরম্যান্স পেনাল্টি কেবল তখনই প্রযোজ্য যদি আপনি প্রকৃতপক্ষে একটি খালি href বৈশিষ্ট্য নির্দিষ্ট করে থাকেন। প্রশ্নটিতে বলা হয়েছে যে এখানে কোনও href বৈশিষ্ট্য নেই।
পিট বি

18
প্রকৃতপক্ষে, নিবন্ধ অনুযায়ী (এবং এটি উপলব্ধি করে) সম্ভাব্য পারফরম্যান্স পেনাল্টি কেবল খালি এসসিআর বৈশিষ্ট্যের জন্য প্রযোজ্য । এটি খালি href বৈশিষ্ট্যগুলি সম্পর্কে পারফরম্যান্স-ভিত্তিতে কিছুই বলে না।
bergie3000

1
হ্যালো @ গুন্নার, লিঙ্কটি এখন শেষ হয়ে গেছে বলে মনে হচ্ছে। আপনার কি দাবিটির জন্য অন্য রেফারেন্স রয়েছে?
user31782

25

সংক্ষিপ্ত উত্তর: না

দীর্ঘ উত্তর:

প্রথমত, কোনও href বৈশিষ্ট্য ছাড়া এটি কোনও লিঙ্ক হবে না not যদি এটি কোনও লিঙ্ক না হয় তবে এটি কীবোর্ড (বা শ্বাসের স্যুইচ, বা অন্য কোনও পয়েন্টার ভিত্তিক ইনপুট ডিভাইস) অ্যাক্সেসযোগ্য হবে না (যদি না আপনি এইচটিএমএল 5 বৈশিষ্ট্য ব্যবহার করেন tabindexযা সর্বজনীন সমর্থিত নয়)। এটি খুব বিরল যে কীবোর্ড অ্যাক্সেস না রাখার জন্য এটি নিয়ন্ত্রণের জন্য উপযুক্ত।

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

নিরর্থক জেএস দ্বারা প্রগতিশীল বর্ধনের ব্যবহার করুন


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

@ ট্রাইঙ্কো - একটি লিঙ্ক ব্যবহার করুন, তবে এটি সঠিকভাবে করুন। উত্তরের শেষ লাইনটি দেখুন।
কোয়ান্টিন

5
'একটি' ট্যাগগুলিতে টবিনডেক্সটি HTML4 (কমপক্ষে) w3schools.com/tags/att_global_tabindex.asp
টেকনো তারেক

@ টেকনো টেরেক - হ্যাঁ, তবে hrefএটি বাধ্যতামূলক ছিল (যদি না এটি নামযুক্ত অ্যাঙ্কর না হত যা ক্ষেত্রে ট্যাবিনডেক্সটি বোঝায় না)। tabindexট্যাব অর্ডারে ফোকাসযোগ্য উপাদান যুক্ত করার ব্যবহার এইচটিএমএল 5
কোয়ান্টিন

4
এটি কেবল ভুল। আপনি এইচটিএমএল-এর জন্য কোনও পুরানো অনুষঙ্গ উল্লেখ করছেন কিনা তা আমি বলতে পারি না, তবে এইচটিএমএল 5 অনুসারে aকোনও hrefবৈশিষ্ট্য ছাড়াই ট্যাগ থাকা সত্যই কার্যকর is
মাইকেল 25

23

পিছনের সামর্থ্যের জন্য যদি আপনাকে href ব্যবহার করতে হয় তবে আপনি এটিও ব্যবহার করতে পারেন

<a href="javascript:void(0)">link</a>

# এর পরিবর্তে, যদি আপনি গুণটি ব্যবহার করতে না চান


1
আমার একটি <a> ট্যাগের দরকার ছিল যা ফাংশন ব্যতীত সকলের মধ্যে একটি লিঙ্কের মতো আচরণ করে। এটি আমার জন্য কৌশলটি করেছে।
জাদ এস

13

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

হ্রেফ ছাড়াই ট্যাগটির একটি মানক ব্যবহার হ'ল নামযুক্ত লিঙ্কগুলি তৈরি করা। এটি আপনাকে নাম = ব্লাহ সহ একটি অ্যাঙ্কর ব্যবহার করতে দেয় এবং পরবর্তী সময়ে আপনি বর্তমান পৃষ্ঠার নামকৃত অংশটিতে লিঙ্ক দিতে href = # ব্লাহ সহ একটি অ্যাঙ্কর তৈরি করতে পারেন। তবে, এটি হ্রাস করা হয়েছে কারণ আপনি একই পদ্ধতিতে আইডিও ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি id = শিরোলেখ সহ একটি শিরোনাম ট্যাগ ব্যবহার করতে পারেন এবং পরে আপনার একটি অ্যাঙ্কর href = # শিরোলেখ নির্দেশ করতে পারে।

আমার বক্তব্য, নাম সম্পত্তি ব্যবহার করার পরামর্শ দেওয়া হয় না। কেবলমাত্র এমন একটি ব্যবহারের কেস সরবরাহ করতে যেখানে আপনার কোনও হেরেফের দরকার নেই এবং তাই কেন এটির প্রয়োজন নেই তা যুক্তিযুক্ত।


2
আমি মনে করি যে প্রশ্নটি জিজ্ঞাসা করার চেষ্টা করছিল এবং অন্যান্য উত্তরগুলি কী সম্বোধন করছে তা হ'ল এটি একটি ইন্টারেক্টিভ উপাদান হিসাবে (যেমন একটি লিঙ্ক) ব্যবহৃত হচ্ছে এমনhref কোনও <a>উপাদানটির বৈশিষ্ট্য বাদ দেওয়া নিরাপদ কিনা । আপনি যেমন উল্লেখ করেছেন, কোনও বৈশিষ্ট্য ছাড়াই এটি বেশ সহজ ... লিঙ্ক নয়, কেবল একটি অ্যাঙ্কর, যা সম্পূর্ণ আলাদা thing href
BoltClock

1
হ্যাঁ, তবে - কেবল জোর দেওয়ার জন্য - এই ব্যবহারের ক্ষেত্রে <a> ট্যাগটি এখনও বৈধ।
মনোক্রোম

9

অ্যাক্সেসিবিলিটি দৃষ্টিকোণ থেকে কোনও <a>হ্রেফ ব্যতীত ট্যাব-সক্ষম নয়, সমস্ত লিঙ্কগুলি ট্যাব-সক্ষম হওয়া উচিত তাই আপনার কাছে কোনও href না থাকলে একটি tabindex = '0 "যুক্ত করুন।


1
বা কোনও বোতাম ব্যবহার করুন যদি এটি কোনও পুনঃনির্দেশের পরিবর্তে কোনও পৃষ্ঠা-তে অ্যাকশন সম্পাদন করে।
সাইমনডেভার

8

<a>যখন মাল্টি লেভেল মেনু ব্যবহার "সূরা" ছাড়া ট্যাগ কুশলী হতে পারে এবং আপনি পরবর্তী স্তরে প্রসারের কি প্রয়োজন রয়েছে কিন্তু যে মেনু ট্যাগ একটি সক্রিয় লিঙ্কটি হতে চাই না। এটি সেভাবে ব্যবহার করে আমার কোনও সমস্যা হয়নি।


1
আপনি কি কীবোর্ড দিয়ে সেই মেনুটি অ্যাক্সেস করার চেষ্টা করেছেন?
আইজ

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

1

কিছু ব্রাউজারে আপনি সমস্যার মুখোমুখি হবেন যদি আপনি কোনও href অ্যাট্রিবিউট না দিয়ে থাকেন। আমি আপনাকে আপনার কোডটি এরকম কিছু লেখার পরামর্শ দিচ্ছি:

<a href="#" onclick="yourcode();return false;">Link</a>

আপনি আপনার নিজস্ব ফাংশন বা যুক্তি দিয়ে আপনার কোড () প্রতিস্থাপন করতে পারেন, তবে প্রত্যাবর্তন মিথ্যা যুক্ত করতে ভুলবেন না; শেষে বিবৃতি।


আমি Backbone.Router সঙ্গে Backbone.js ব্যবহার করছি এবং #সূচক পৃষ্ঠার জন্য। আমার কিছু নাবার বারের লিঙ্কের জন্য আমি কোনও রুট ট্রিগার করতে চাই না #যা যদি আপনি a href="#"নিজেই ব্যবহার করেন তবে যা ঘটে তা হয় । ব্যবহার <a href="#" onclick="return false;"রুট আলোড়ন সৃষ্টি হচ্ছে স্টপ কিন্তু ক্লিকের ঘটনা এখনও আমার হ্যান্ডলার (যা DOM ইভেন্টগুলি jQuery এবং Backbone.Radio মাধ্যমে লাগানো ব্যবহার করে) পর্যন্ত বুদবুদ। ধন্যবাদ @ শাশ্বত 13 :)
ডেভিড উইলিয়ামসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.