জাভাস্ক্রিপ্ট কনসোলে যদি ইফ্রেমে প্রসঙ্গ পরিবর্তন করার কোনও উপায় আছে?


107

ওয়েবকিট বিকাশকারী সরঞ্জাম / ফায়ারব্যাগ কনসোলে সম্পাদিত জাভাস্ক্রিপ্টের প্রসঙ্গটি পরিবর্তন করতে চাই যাতে কোডটি সম্পাদন করার জন্য এটি পৃষ্ঠায় কোনও আইফ্রেমের ভিতরে থেকে চলছে running

আমি জানি আমি পৃথক পৃষ্ঠায় ইফ্রামে পৃষ্ঠাটি খোলার মাধ্যমে এটি করতে পারলাম, তবে আমি কোডটি চালাতে চাই যেখানে এটি প্যারেন্ট ফ্রেমের সাথে ইন্টারেক্ট করে।


1
আপনি সর্বদা window.frames[x]ফ্যাশনে কোড কার্যকর করতে পারেন । আপনি যে কমান্ড চান তা কেবল যুক্ত করুন। আইইwindow.frames[0].runFunction()
লাভএন্ডকোডিং

1
@ কেতাশ, আপনি কি উত্তর দিতে চান?
মুহাদ্

আমি কীভাবে একই কাজ করতে পারি? আমি কনসোল উইন্ডোটিতে একটি উপাদান নির্বাচন করা অত্যন্ত কঠিন বলে মনে করি $ যদি উপাদানটি একটি অভ্যন্তরীণ IFRAME এ থাকে তবে। সাহায্য করুন.
তারেকাহ্ফ

উত্তর:


149

ক্রোম 15 আপনাকে কনসোলের সুযোগ পরিবর্তন করতে দেয়। কনসোলের নীচে, পরিষ্কার কনসোল বোতামের পাশে, একটি মেনু রয়েছে যা বলে <top frame>যে উপলব্ধ ফ্রেমগুলির একটি তালিকা দেবে:

এখানে চিত্র বর্ণনা লিখুন

ফায়ারফক্সের বর্তমানে একই ধরণের বৈশিষ্ট্য রয়েছে:

এখানে চিত্র বর্ণনা লিখুন


আপনি কমান্ড লাইনটি ব্যবহার করে ফ্রেমগুলি জুড়ে নেভিগেট করতে পারেন :

var frame = document.getElementById("frame1").contentWindow;
cd(frame);

6
এই একই জিনিসটি সম্পাদন করতে আমি কনসোলে কোড কার্যকর করতে পারি, বা আমাকে ফ্রেম নির্বাচনকারী ক্লিক করতে হবে?
bodine

@ বোডাইন - আপনি কনসোল কমান্ড থেকে এটি সম্পাদন করার উপায় খুঁজে পেয়েছেন?
আরটি

1
নোট করুন যে এই ড্রপডাউনটি এখন নীচের চেয়ে কনসোলের শীর্ষে রয়েছে।
মুহাদ

1
আমি এটি ক্রোম 38-এ দেখছি না Chrome ক্রোমে কীভাবে এটি করা যায় তাড়াতাড়ি খুঁজে বের করতে পারিনি; পরিবর্তে ফায়ারফক্সে সিডি (ফ্রেম [<সূচী নম্বর>]) ব্যবহার করেছেন।
আকরিকোস

1
কি লজ্জা. ফ্রেমের সামগ্রী পরিবর্তন করা থাকলে এটি নির্বাচিত ফ্রেমটিকে ধরে রাখতে পারে না won't এটি "শীর্ষ ফ্রেমে" ফিরে যায়
ব্রাইক

22

কার্যকারিতাটি <iframe>ব্যবহার করে আপনি কোডগুলি কার্যকর করতে পারেন window.frames[x]। উদাহরণ স্বরূপ,

window.frames[0].runFunction()

ফায়ারবাগ যদি আপনার পছন্দের অস্ত্র হয় তবে একটি দুর্দান্ত বিকল্প। ধন্যবাদ।
পরাবাস্তব স্বপ্নগুলি

1
আপনি jQuery কমান্ডের মতো ফাংশনের বাইরে কোডটি কীভাবে সম্পাদন করবেন? অথবা আপনি যদি কোনও ফ্রেমের অধীনে কোনও ডিওএম উপাদানটির রেফারেন্স পেতে চান তবে সেই উপাদানটির বিরুদ্ধে কোড চালাবেন?
ডেভিড

সুতরাং উদাহরণ হিসাবে হবে:window.frames[0].alert()
শায়ান

6

আজকের ক্রোমে (সংস্করণ 52), আপনাকে যা করতে হবে তা হ'ল দেব সরঞ্জামগুলির "এলিমেন্টস" ট্যাবটিতে iframe নির্বাচন করা। আপনি জেএস কনসোলে যে কোনও কিছু রান করবেন তা নির্বাচিত ইফ্রেমের প্রসঙ্গে স্বয়ংক্রিয়ভাবে চলবে।

উদাহরণস্বরূপ, এখানে আমি একটি আইফ্রেমে নির্বাচন করেছি এবং আমি document.location.pathnameকনসোলে টাইপ করলে এটি ঠিকানা বার থেকে URL এর পরিবর্তে iframe এর src বৈশিষ্ট্যটি প্রদান করে:

এখানে চিত্র বর্ণনা লিখুন


4

ফায়ারব্যাগের সমাধানের জন্য অন্য এসও প্রশ্নের এই উত্তরটি দেখুন । ডেনিসের ক্রোম সমাধানের মতো ক্রস-ডোমেন কাজ করে না।

সম্পাদনা করুন: ফায়ারবগের নতুন সংস্করণগুলির সাথে তাদের ক্রস-ডোমেনের সমস্যা স্থির থাকতে পারে।


4

ডিফল্টরূপে স্ক্রিপ্ট স্টেটমেন্ট এবং কমান্ডগুলির সম্পাদন শীর্ষ স্তরের উইন্ডোর প্রসঙ্গে করা হয়। আপনি যদি ফ্রেম ব্যবহার করেন তবে "সিডি ()" কনসোল কমান্ডটি ব্যবহার করুন।

সিডি () পরামিতি ছাড়াই সিডি () কল করা শীর্ষ-স্তরের উইন্ডোতে ফিরে আসে।

সিডি (উইন্ডো) আপনাকে ওয়েবপৃষ্ঠার ডিফল্ট শীর্ষ-স্তরের উইন্ডো থেকে কোনও ফ্রেমের উইন্ডোতে কমান্ড-লাইন এক্সপ্রেশন মূল্যায়ন পরিবর্তন করতে দেয়।

আরও তথ্য, এখানে


আমি ঠিক এটিই খুঁজছিলাম। (এটি ফায়ারফক্সে কাজ করে) ধন্যবাদ
ব্যবহারকারী 2410595

4
cd(document.getElementsByTagName('iframe')[0]);

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

ধন্যবাদ! এটি ফায়ারফক্সের পক্ষে করার একটি অদ্ভুত উপায় তবে আমি অনুমান করি "সিডি (আইফ্রেমে)" প্রসঙ্গটি স্যুইচ করার জন্য আপনি কনসোলে প্রবেশ করেছেন। আমি আপনাকে একটি +1 বি / সি দিয়েছি আপনি আমাকে কয়েক টন হেড বেং বাঁচিয়েছেন, তবে আপনার এই পোস্টটি সত্যই পোলিশ করে ব্যাখ্যা করা উচিত!
স্কট স্মিথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.