জাভাস্ক্রিপ্ট কল করতে কিভাবে একটি লিঙ্ক ব্যবহার করবেন?


166

জাভাস্ক্রিপ্ট কোড কল করতে কিভাবে একটি লিঙ্ক ব্যবহার করবেন?

উত্তর:


192
<a onclick="jsfunction()" href="#">

অথবা

<a onclick="jsfunction()" href="javascript:void(0);">

সম্পাদনা:

উপরের প্রতিক্রিয়া সত্যিই খুব ভাল সমাধান নয়, আমি প্রাথমিকভাবে পোস্ট করার পরে জেএস সম্পর্কে অনেক কিছু শিখেছি। দেখুন EndangeredMassa এর উত্তর এই সমস্যা সমাধানে ভাল পদ্ধতির জন্য নিচে।


11
প্রথমটি আপনাকে পৃষ্ঠার শীর্ষে স্ক্রোল করে দেওয়ার মতো আমি দ্বিতীয়টি প্রস্তাব করব।
ম্যাট গ্র্যান্ডে

7
হ্যাঁ এটি অবশ্যই হবে, যদি না আপনি "মিথ্যা ফেরত" যোগ করেন; আপনার ফাংশন পরে।
চেলসি

26
এটি 1998 কোড। অবারিত সমাধানগুলির মধ্যে একটি ব্যবহার করুন। অনুগ্রহ.
অ্যান্ড্রু হেজেস ২

7
একটিও ব্যবহার করবেন না! লিঙ্কগুলি লিঙ্ক করার জন্য, তারা জাভাস্ক্রিপ্ট কল করতে ডামি উপাদান নয়।
আই.ড্যাব্রিজ

4
যদি আপনার জাভাস্ক্রিপ্ট ইনলাইন রাখতে হয় তবে এটি করুন: <a onclick="jsfunction; মিথ্যা "href="linkasnormal">
ফায়ার ক্রু

201

আপত্তিজনক জাভাস্ক্রিপ্ট, কোনও লাইব্রেরি নির্ভরতা নেই:

<html>
<head>
    <script type="text/javascript">

        // Wait for the page to load first
        window.onload = function() {

          //Get a reference to the link on the page
          // with an id of "mylink"
          var a = document.getElementById("mylink");

          //Set code to run when the link is clicked
          // by assigning a function to "onclick"
          a.onclick = function() {

            // Your code here...

            //If you don't want the link to actually 
            // redirect the browser to another page,
            // "google.com" in our example here, then
            // return false at the end of this block.
            // Note that this also prevents event bubbling,
            // which is probably what we want here, but won't 
            // always be the case.
            return false;
          }
        }
    </script>
</head>
<body>
    <a id="mylink" href="http://www.google.com">linky</a>        
</body>
</html>

26
আপনি কেন ব্যাখ্যা করতে পারবেন যে এটি বর্তমানে গৃহীত উত্তরের চেয়ে কেন ভাল, এবং যেখানে স্ক্রিপ্টটি পৃষ্ঠাতে থাকা উচিত (কারণ এটি বেশ স্পষ্টতই একটি প্রাথমিক স্তরের প্রশ্ন)?
বিল

8
ঠিক. আপডেট করা হয়েছে।
বিপন্নমাসা

6
আমি hrefযদি ব্যবহারকারীটিকে পুনর্নির্দেশ করতে না চাই এবং কেবল কিছু কোড চালাতে চাই না তবে আমি এর জন্য কী রাখব ? সম্পাদনা: আমি দেখতে এটি বাম ফাঁকা হতে পারে: href=""
সাবারওল্ফি

6
সরাসরি ট্যাগটিতে রাখার চেয়ে onclickইভেন্টটি কেন যুক্ত করা ভাল ? window.onloadonclick<a>
নাথান রিড

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

47
<a href="javascript:alert('Hello!');">Clicky</a>

সম্পাদনা, বছর পরে: না! কখনও এই কাজ করবেন না! আমি যুবক এবং বোকা ছিল!

সম্পাদনা করুন, আবারো: দু'জন লোক জিজ্ঞাসা করেছেন কেন আপনি এটি করবেন না। এর কয়েকটি কারণ রয়েছে:

  1. উপস্থাপনা: এইচটিএমএল উপস্থাপনা উপর ফোকাস করা উচিত। জেএসকে এইচআরইএফ-এ রাখার অর্থ হ'ল আপনার এইচটিএমএল এখন ব্যবসায়ের যুক্তি দিয়ে কাজ করছে log

  2. সুরক্ষা: আপনার এইচটিএমএলে জাভাস্ক্রিপ্ট যেমন সামগ্রী সুরক্ষা নীতি (সিএসপি) লঙ্ঘন করে । সামগ্রী সুরক্ষা নীতি (সিএসপি) সুরক্ষার একটি অতিরিক্ত স্তর যা ক্রস-সাইট স্ক্রিপ্টিং (এক্সএসএস) এবং ডেটা ইনজেকশন আক্রমণ সহ কয়েকটি ধরণের আক্রমণ সনাক্ত এবং প্রশমিত করতে সহায়তা করে। এই আক্রমণগুলি ডেটা চুরি থেকে শুরু করে সাইট ডিফেসমেন্ট বা ম্যালওয়্যার বিতরণ সবকিছুর জন্য ব্যবহার করা হয়। এখানে আরও পড়ুন

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


16
এই পদ্ধতিতে সমস্যার কিছু বর্ণনা সম্ভবত রয়েছে? এই তুলনায় খারাপ href='#'এবং alert()মধ্যে onclick?
টমাস আহলে

3
আমি জাভাস্ক্রিপ্টে নতুন আছি এবং এর সাথে কী হয়েছে বুঝতে পারছি না .. কোনও ব্যাখ্যা ভাল লাগবে
নীলাঞ্জনা লোধ

1
হাই, আমি কেন এটি ব্যবহার করবেন না তা সম্পর্কেও নিশ্চিত নই? আমি এমন দৃশ্যে আটকে আছি যেখানে আমাকে জেএস ফাংশনটি কল করতে হবে তবে আমি যা নির্দিষ্ট করতে পারি তা সমস্তই একটি লিঙ্ক। এবং আপনার সমাধান কাজ করে।
skapie19

43

এবং, কেন jQuery নিয়ে আপত্তিজনক নয়:

  $(function() {
    $("#unobtrusive").click(function(e) {
      e.preventDefault(); // if desired...
      // other methods to call...
    });
  });

এইচটিএমএল

<a id="unobtrusive" href="http://jquery.com">jquery</a>

2
এটি কি এসইওর পক্ষে এমন কাজ করবে যে ক্রলাররা লিঙ্কটি খুঁজে পাবে এবং এটি অনুসরণ করবে?
আহি টুনা

11
কারণ সবাই jquery ব্যবহার করে না।
স্টু

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

12

নিরবচ্ছিন্ন জাভাস্ক্রিপ্টের অনেকগুলি সুবিধা রয়েছে, এটি গ্রহণ করা পদক্ষেপগুলি এবং এটি কেন ব্যবহার করা ভাল here

  1. লিঙ্কটি সাধারণ হিসাবে লোড হয়:

    <a id="DaLink" href="http://host/toAnewPage.html"> এখানে ক্লিক করুন </a>

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

  1. জাভাস্ক্রিপ্ট পৃষ্ঠা লোড চলমান:

     window.onload = function(){
            document.getElementById("DaLink").onclick = function(){
                   if(funcitonToCall()){
                       // most important step in this whole process
                       return false;
                   }
            }
     }
  2. যদি জাভাস্ক্রিপ্টটি সফলভাবে চলমান থাকে, তবে জাভাস্ক্রিপ্টের সাহায্যে বর্তমান পৃষ্ঠায় সামগ্রীটি লোড করা যায়, প্রত্যাবর্তন মিথ্যাটি লিঙ্ক ফায়ারিং বাতিল করে দেয়। অন্য কথায়, জাভাস্ক্রিপ্টটি সফলভাবে চালিত হলে লিঙ্কটি অক্ষম করে ফিরতি মিথ্যা রাখার প্রভাব রয়েছে। জাভাস্ক্রিপ্ট না চললে এটি চালানোর অনুমতি দেওয়ার সময়, একটি দুর্দান্ত ব্যাকআপ তৈরি করা যাতে আপনার বিষয়বস্তুগুলি কোনওভাবেই অনুসন্ধানের ইঞ্জিনগুলির জন্য প্রদর্শিত হয় এবং যদি আপনার কোডটি ব্রেক হয়, বা জাভাস্ক্রিপ্ট সিস্টেমে দেখা হয়।

বিষয়টির সেরা বইটি হ'ল জেরেমি কিথের "ডোম স্ক্রিপ্ট"


9

বা, আপনি যদি প্রোটোটাইপজেএস ব্যবহার করেন

<script type="text/javascript>
  Event.observe( $('thelink'), 'click', function(event) {
      //do stuff

      Event.stop(event);
  }
</script>

<a href="#" id="thelink">This is the link</a>

1
আমি ইভেন্ট হ্যান্ডলিং ফাংশনগুলিকে লাইনে না রেখে পছন্দ করি love
মার্ক বাইক

1
এটিই একমাত্র উপায়। দয়া করে ইনলাইন উত্তরগুলি ভোট দিন। এটি এমন একটি অনুশীলন যার জন্য আজকাল কোনও অজুহাত নেই।
অ্যান্ড্রু হেজেস

5
@ অ্যান্ড্রু: দয়া করে ইনলাইন উত্তরগুলি কেন খারাপ তা ব্যাখ্যা করে আপনার ডাউনটোটের সাথে একটি মন্তব্য দিন।
বিলটি

8

আমি মনে করি আপনি onclickইভেন্টটি ব্যবহার করতে পারবেন , এরকম কিছু:

<a onclick="jsFunction();">

0

@ মিস্টার_লাকি জ্যাকুরির সাথে উত্তর ব্যবহারের ভিত্তিতে:

$('#unobtrusive').on('click',function (e) {
    e.preventDefault(); //optional
    //some code
});

এইচটিএমএল কোড:

<a id="unobtrusive" href="http://jquery.com">jquery</a>

-2

কেবল জাভাস্ক্রিপ্ট ব্যবহার করুন: ---- অনুকরণীয়

javascript:var JFL_81371678974472 = new JotformFeedback({ formId: '81371678974472', base: 'https://form.jotform.me/', windowTitle: 'Photobook Series', background: '#e44c2a', fontColor: '#FFFFFF', type: 'false', height: 700, width: 500, openOnLoad: true })
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.