কীভাবে জাভাস্ক্রিপ্ট ইভেন্ট গুলি চালানো হয়েছে তা সন্ধান করবেন?


122

আমার একটি নির্বাচন তালিকা রয়েছে:

<select id="filter">
  <option value="Open" selected="selected">Open</option>
  <option value="Closed">Closed</option>
</select>

আমি যখন Closedপৃষ্ঠাটি পুনরায় লোড নির্বাচন করি । এই ক্ষেত্রে এটি বন্ধ টিকিট দেখায় (খোলা পরিবর্তে)। আমি ম্যানুয়ালি এটি করার সময় এটি কাজ করে works

সমস্যাটি হ'ল আমি ওয়াটারেরClosed সাথে নির্বাচন করার সময় পৃষ্ঠাটি পুনরায় লোড হয় না :

browser.select_list(:id => "filter").select "Closed"

এর অর্থ সাধারণত কিছু জাভাস্ক্রিপ্ট ইভেন্ট বরখাস্ত করা হয়নি। আমি ওয়াটারের সাথে ইভেন্টগুলিতে আগুন জ্বালাতে পারি:

browser.select_list(:id => "filter").fire_event "onclick"

তবে আমার জানা দরকার যে কোন ঘটনাটি চালানো উচিত।

কোন ইভেন্টের জন্য কোনও উপাদানকে সংজ্ঞায়িত করার উপায় আছে কি?


এই প্রশ্নে আরও সরঞ্জামের তালিকা রয়েছে: স্ট্যাকওভারফ্লো
jেলজকো ফিলিপিন

2
ভিজ্যুয়াল ইভেন্ট, sprymedia.co.uk/article/ ভিজুয়াল + ইভেন্ট । আমি নিশ্চিত যে এটি এই স্ট্যাকওভারফ্লো পৃষ্ঠায় অবতরণকারীদের অর্ধেককে সহায়তা করবে :)
সিড্রিক

উত্তর:


143

ভেবেছি আমি যুক্ত করে দিয়েছি যে আপনি এটি ক্রোমেও করতে পারেন:

Ctrl+ Shift+ I(বিকাশকারী সরঞ্জাম)> উত্স> ইভেন্ট শ্রোতার ব্রেকপয়েন্টস (ডানদিকে)।

উপাদানটিতে ডান ক্লিক করে এবং তার বৈশিষ্ট্যগুলি (ডানদিকে প্যানেল) ব্রাউজ করে আপনি ইতিমধ্যে সংযুক্ত সমস্ত ইভেন্টও দেখতে পারেন।

উদাহরণ স্বরূপ:

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

    কিছুটা ভিন্ন তবে আশ্চর্যজনকভাবে দুর্দান্ত একটি অপশন হ'ল ভিজ্যুয়াল ইভেন্ট: http://www.sprymedia.co.uk/article/ ভিজ্যুয়াল + ইভেন্ট +২

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

    বেনামে অ্যান্ড্রুও এখানে উল্লেখ করেছেনmonitorEvents(window);


    2
    আপনার প্রস্তাবিত দুটি উপায় দিয়ে কোন ইভেন্টগুলি চালিত হয়েছে তা কীভাবে দেখতে হবে তা আমি বুঝতে পারি না।
    jeljko ফিলিপিন

    1
    আপডেট: এটি Scriptsডিভাইসগুলির মধ্যে নেই (বা পরিদর্শক), আপনাকে প্রবেশ করতে হবে Sourcesএবং তারপরে ডানদিকে থাকা মেনুটি দেখতে হবে।
    আলেডালগ্রান্ডে

    ধন্যবাদ_এলডালগ্র্যান্ড ধন্যবাদ, আপডেট করেছেন। (যে কারও পাঠের জন্য, এটি কেবলমাত্র প্রথম সমাধানে প্রযোজ্য, দ্বিতীয়টি এখনও পরিদর্শক ব্যবহার করে)।
    ক্রিস

    1
    আপনি উদাহরণস্বরূপ upvote বাটনটি কেন বেছে নেওয়ার কোনও নির্দিষ্ট কারণ আছে? : পি
    জর্জ দিমিত্রিয়াডিস

    @ জর্জিডিমিটিরিয়াডিস হা হা উদিত হয়েছে: পি
    ক্রিস

    112

    দেখে মনে হচ্ছে ফায়ারব্যাগের (ফায়ারফক্স অ্যাড-অন) এর উত্তর রয়েছে:

    • ফায়ারব্যাগ খুলুন
    • এইচটিএমএল ট্যাবটিতে উপাদানটি ডান ক্লিক করুন
    • ক্লিক Log Events
    • কনসোল ট্যাব সক্ষম করুন
    • কনসোল ট্যাবটিতে ক্লিক করুন (অন্যথায় পৃষ্ঠাটি পুনরায় লোড হওয়ার পরে কনসোল ট্যাব সাফ হবে)
    • নির্বাচন করুন Closed(ম্যানুয়ালি)
    • কনসোল ট্যাবে এই জাতীয় কিছু থাকবে:

      ...
      mousemove clientX=1097, clientY=292
      popupshowing
      mousedown clientX=1097, clientY=292
      focus
      mouseup clientX=1097, clientY=292
      click clientX=1097, clientY=292
      mousemove clientX=1096, clientY=293
      ...
      

    উত্স: ফায়ারব্যাগ টিপ: লগ ইভেন্টগুলি


    4
    অনেক ধন্যবাদ, আমি সেই ফায়ারব্যাগ বৈশিষ্ট্যটি সম্পর্কে জানতাম না। সম্ভবত আমার কিছুটা সময় আরটিএফএম করা দরকার।
    মার্সেল করপেল

    আমি কয়েক মিনিট আগে পর্যন্ত এটি সম্পর্কে জানতাম না। আমি প্রশ্নটি লিখছিলাম এবং সেই পথের উত্তর খুঁজে পেয়েছি। :)
    jeljko ফিলিপিন

    2
    ফায়ারব্যাগের বিকাশকারী থেকে সাম্প্রতিক একটি ব্লগ এন্ট্রি: সফটওয়্যারআইশড.
    com

    1
    হাই, আমি ফায়ারব্যাগে ডান ক্লিক করতে চেষ্টা করেছি কিন্তু লগ ইভেন্টগুলি বিকল্পটি খুঁজে পাচ্ছি না, দয়া করে কীভাবে এটি খুঁজে পেতে আমাকে সহায়তা করতে পারেন?
    রাজাগোপালন

    2
    হাই, ফিরবগ প্লাগইন আর নেই। তাহলে আমার কীভাবে এটি অর্জন করা উচিত? দয়া করে আমাকে সহায়তা করুন
    হিমামাস

    71

    ক্রোম সম্পর্কিত, কমান্ড লাইন এপিআইয়ের মাধ্যমে মনিটরভিত্তিকগুলি () চেকআউট করুন।

    • মেনু> সরঞ্জামসমূহ> জাভাস্ক্রিপ্ট কনসোলের মাধ্যমে কনসোলটি খুলুন।
    • প্রবেশ করান monitorEvents(window);
    • ইভেন্টগুলি দিয়ে প্লাবিত কনসোলটি দেখুন

      ...
      mousemove MouseEvent {dataTransfer: ...}
      mouseout MouseEvent {dataTransfer: ...}
      mouseover MouseEvent {dataTransfer: ...}
      change Event {clipboardData: ...}
      ...
      

    নথিতে অন্যান্য উদাহরণ রয়েছে । আমি অনুমান করছি এই বৈশিষ্ট্যটি পূর্ববর্তী উত্তরের পরে যুক্ত হয়েছিল।


    5
    নিস! JQuery এর সাথে একত্রে:monitorEvents($('#element').get())
    ক্লাউস

    1
    নজরদারি ব্যবহার বন্ধ করতেunmonitorEvents(window)
    অগাস্টাস

    0

    আপনি আপনার গুগল ক্রোম বিকাশকারী কনসোলে getEventListeners ব্যবহার করতে পারেন ।

    getEventListeners (অবজেক্ট) নির্দিষ্ট বস্তুর উপর নিবন্ধিত ইভেন্ট শ্রোতাদের ফিরিয়ে দেয়।

    getEventListeners(document.querySelector('option[value=Closed]'));
    আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
    Licensed under cc by-sa 3.0 with attribution required.