গুগল ক্রোম এক্সটেনশন :: ব্যাকগ্রাউন্ড পৃষ্ঠা থেকে কনসোল.লগ ()?


173

যদি আমি console.log('something');পপআপ পৃষ্ঠা থেকে কল করি বা কোনও স্ক্রিপ্ট অন্তর্ভুক্ত করে যে এটি ঠিক আছে works

তবে পটভূমি পৃষ্ঠাটি সরাসরি পপআপ পৃষ্ঠা থেকে চালিত না হওয়ায় এটি কনসোলটিতে অন্তর্ভুক্ত নয়।

console.log()পপআপ পৃষ্ঠার কনসোলটিতে আমি কীভাবে পটভূমি পাতায় পেতে পারি ?

পটআপ পৃষ্ঠায় কোনও ফাংশন কল করতে ব্যাকগ্রাউন্ড পৃষ্ঠা থেকে কোনও উপায় আছে?


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

14
আপনি যদি আপনার ব্রাউজারের ক্রিয়াটিতে ডান ক্লিক করুন -> পপআপটি পরীক্ষা করেন তবে আপনি আপনার বর্ধনের জন্য বিকাশকারী সরঞ্জাম পৃষ্ঠা পাবেন। পপআপ.জেএস এতে লগ প্রিন্ট করবে।
not_shitashi

@ not_shitashi এর মন্তব্য এই প্রশ্নের উত্তর হওয়া উচিত।
গাব

উত্তর:


154

যে কোনও এক্সটেনশন পৃষ্ঠাতে ( সামগ্রী স্ক্রিপ্টগুলি বাদে ) এর মাধ্যমে পটভূমির পৃষ্ঠায় সরাসরি অ্যাক্সেস থাকে chrome.extension.getBackgroundPage()

তার অর্থ, পপআপ পৃষ্ঠার মধ্যে , আপনি কেবল এটি করতে পারেন:

chrome.extension.getBackgroundPage().console.log('foo');

এটি ব্যবহার করা সহজ করার জন্য:

var bkg = chrome.extension.getBackgroundPage();
bkg.console.log('foo');

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

আশা করি যা সবকিছু মুছে ফেলে।


1
@ মোহাম্মদ মনসুর, এই সমাধানটি আমার পক্ষে কার্যকর নয়। যদি আমি alert() chrome.extension.getBackgroundPage(), আমি পেতে null। আমার কি অনুমতি সেট বা অন্য কোনও কনফিগারেশন থাকা দরকার?
gwg

@gwg আপনার এক্সটেনশনের একটি পটভূমি পৃষ্ঠা আছে? ডকুমেন্টেশন অনুসারে "এক্সটেনশানের কোনও ব্যাকগ্রাউন্ড পৃষ্ঠা না থাকলে নালার প্রত্যাবর্তন করে।" বিকাশকারী.চ্রোম.
মোহাম্মদ মনসুর

এটি আমার নিজের বার্তাগুলি কনসোল করার জন্য নিখুঁতভাবে কাজ করে। ধন্যবাদ। পপআপ.জেগুলি থেকে ব্যতিক্রম ইত্যাদি কীভাবে করা যায় সে সম্পর্কে কোনও ধারণা ব্যাকগ্রাউন্ড.জেএস এর কনসোলে প্রদর্শিত হবে?
স্টিভেন_ নোবল

195

আপনি যদি এক্সটেনশান তালিকার "ব্যাকগ্রাউন্ড html" লিঙ্কটিতে ক্লিক করেন তবে আপনি ব্যাকগ্রাউন্ড পৃষ্ঠার কনসোলটি খুলতে পারেন।

আপনার এক্সটেনশনের সাথে সম্পর্কিত ব্যাকগ্রাউন্ড পৃষ্ঠায় অ্যাক্সেস করতে Settings / Extensionsএকটি নতুন ট্যাব খুলুন বা খুলুন এবং প্রবেশ করুন chrome://extensions। আপনি এই স্ক্রিনশট মত কিছু দেখতে পাবেন।

ক্রোম এক্সটেনশান সংলাপ

আপনার এক্সটেনশনের অধীনে লিঙ্কে ক্লিক করুন background page। এটি একটি নতুন উইন্ডো খুলবে। জন্য প্রসঙ্গ মেনু নমুনা উইণ্ডো শিরোনামের সাথে আছে: _generated_background_page.html


4
চিয়ার্স, আমি এটি সম্পর্কে অবগত, তবে পটভূমির পৃষ্ঠাটি সরাসরি পপআপ পৃষ্ঠা থেকে শুরু করে না।
হাইলউড

পটভূমি পৃষ্ঠা খুলতে কোনও কনসোল লগিংয়ের তথ্য আউটপুট দেয় না।
লেকে

@ হেইলউড ব্যাকগ্রাউন্ড পৃষ্ঠাটি খোলার ফলে কিছু চাওয়া হয় না তবে পটভূমির পৃষ্ঠার জন্য কনসোল প্রদর্শন করা হবে।
অ্যান্ডਡਮ

1
@ লাইক একবার আপনি ব্যাকগ্রাউন্ড পৃষ্ঠাটি খোলার পরেও এটিতে আপনাকে লিখতে হবে, অর্থাত্ পটভূমি পৃষ্ঠা থেকে সরাসরি কনসোল.লগ () ব্যবহার করুন বা যেমন মোহাম্মদ-মনসুর বলেছিলেন, গেটব্যাকগ্রাউন্ডপেজ ()
এন্ডাম

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

66

আপনার প্রশ্নের সরাসরি উত্তর দিতে, আপনি যখন console.log("something")পটভূমি থেকে কল করেন তখন এই বার্তাটি ব্যাকগ্রাউন্ড পৃষ্ঠার কনসোলটিতে লগ হয়। এটি দেখতে, আপনি যেতে পারেন chrome://extensions/এবং inspect viewআপনার এক্সটেনশনের অধীনে এটিতে ক্লিক করতে পারেন ।

আপনি যখন পপআপ ক্লিক করেন, এটি বর্তমান পৃষ্ঠায় লোড হয়ে যায়, সুতরাং কনসোল.লগের বর্তমান পৃষ্ঠায় লগ বার্তা প্রদর্শিত হবে।


আমিও! এটি সহজ এবং সরাসরি।
সৈয়দবাকআর

আমার এক্সটেনশনে এটি নেই, অন্য এক্সটেনশনগুলি অবশ্য করুন! আমি কীভাবে এটি সক্ষম করব
আহমেদ Eid

আপনার মতো যদি আমার মতো 3 জন মনিটর থাকে ... আপনার মাথাটি মুচড়ে ফেলুন। এটি আমার মনিটরের অ্যারের বিপরীত প্রান্তে ChromeDevTools খুলছিল এবং আমি এটি দেখতে পাই নি didn't
এমপেন

26

আপনি এখনও কনসোল.লগ () ব্যবহার করতে পারেন তবে এটি একটি পৃথক কনসোলে লগইন হয়। এটি দেখার জন্য - এক্সটেনশন আইকনে ডান ক্লিক করুন এবং "পপআপ পরিদর্শন করুন" নির্বাচন করুন।


12

সহজ সমাধানটি হ'ল ফাইলটির উপরের অংশে নিম্নলিখিত কোড যুক্ত করা। এবং আপনি সাধারণভাবে যেমন সমস্ত সম্পূর্ণ ক্রোম কনসোল এপিআই ব্যবহার করতে পারেন তেমন।

 console = chrome.extension.getBackgroundPage().console;
// for instance, console.assert(1!=1) will return assertion error
// console.log("msg") ==> prints msg
// etc

9
const log = chrome.extension.getBackgroundPage().console.log;
log('something')

লগ খুলুন:

  • খুলুন: ক্রোম: // এক্সটেনশনস /
  • বিশদ> পটভূমি পৃষ্ঠা

আপনার আদেশগুলি সম্পর্কে আরও কিছু ব্যাখ্যা দেওয়ার বিষয়ে আপনি কি আপত্তি করবেন?
অনাদায়ী

7

সক্রিয় পৃষ্ঠার কনসোলটিতে লগ করতে চাইলে এটি চেষ্টা করুন:

chrome.tabs.executeScript({
    code: 'console.log("addd")'
});

1
বর্তমান ট্যাবটির জন্য হোস্টের অনুমতি প্রয়োজন।
Xan

আপনি এটি পরীক্ষার জন্য যুক্ত করতে পারেন, এবং আপনি যদি অ্যাডোনটি প্রকাশ করেন তবে সরিয়ে ফেলতে পারেন।
ফাজ

1

মূল প্রশ্নের সাথে আমি মোহাম্মদ মনসুরের গৃহীত উত্তরে যুক্ত করতে চাই যে এই কাজটি অন্যভাবে করার আরও একটি উপায় রয়েছে:

কল সহ পটভূমি পৃষ্ঠা / স্ক্রিপ্টের মধ্যে থেকে আপনি অন্যান্য এক্সটেনশন পৃষ্ঠাগুলি (যেমন বিকল্প পৃষ্ঠা, পপআপ পৃষ্ঠা) অ্যাক্সেস করতে পারেন chrome.extension.getViews()এখানে বর্ণিত হিসাবে ।

 // overwrite the console object with the right one.
var optionsPage = (  chrome.extension.getViews()  
                 &&  (chrome.extension.getViews().length > 1)  ) 
                ? chrome.extension.getViews()[1] : null;

 // safety precaution.
if (optionsPage) {
  var console = optionsPage.console;
}

1

এটি একটি পুরানো পোস্ট, ইতিমধ্যে ভাল উত্তর সহ, তবে আমি আমার দুটি বিট যুক্ত করি। আমি কনসোল.লগ ব্যবহার করতে পছন্দ করি না, আমি বরং একটি লগার ব্যবহার করব যা কনসোলে লগ হয়, বা যেখানেই আমি চাই যেখানে লগ ফাংশনটি সংজ্ঞায়িত করার মতো একটি মডিউল আমার কাছে রয়েছে

function log(...args) {
  console.log(...args);
  chrome.extension.getBackgroundPage().console.log(...args);
}

আমি যখন লগ বলি ("এটি আমার লগ") এটি পপআপ কনসোল এবং ব্যাকগ্রাউন্ড কনসোল উভয়ই বার্তাটি লিখবে।

সুবিধাটি হ'ল কোডটি পরিবর্তন না করেই লগগুলির আচরণ পরিবর্তন করতে সক্ষম হবেন (যেমন উত্পাদনের জন্য লগগুলি অক্ষমকরণ ইত্যাদি ...)


0

একটি পটভূমি পৃষ্ঠা থেকে কনসোল লগ পেতে আপনার পটভূমির পৃষ্ঠা ব্যাকগ্রাউন্ডে নীচের কোড স্নিপেট লিখতে হবে - js -

chrome.extension.getBackgroundPage () console.log ( 'হ্যালো')।

তারপরে কনটোল লগটি দেখতে এক্সটেনশনটি লোড করুন এবং এর পটভূমি পৃষ্ঠাটি পরীক্ষা করুন।

এগিয়ে যান!!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.