জাভাস্ক্রিপ্টে উইন্ডো, পর্দা এবং নথির মধ্যে পার্থক্য কী?


243

আমি এই শর্তাদি ডিওএমের জন্য বিশ্ব পরিবেশ হিসাবে পরস্পর পরিবর্তিতভাবে ব্যবহৃত দেখছি। পার্থক্যটি কী (যদি সেখানে একটি থাকে) এবং আমার প্রতিটিটি কখন ব্যবহার করা উচিত?

উত্তর:


248

Windowমূল জাভাস্ক্রিপ্ট অবজেক্ট রুট, global objectব্রাউজারে ওরফে , ডকুমেন্ট অবজেক্ট মডেলের মূল হিসাবে বিবেচনা করা যেতে পারে। আপনি এটি হিসাবে অ্যাক্সেস করতে পারেনwindow

window.screenবা কেবল screenশারীরিক পর্দার মাত্রা সম্পর্কে একটি ছোট তথ্য অবজেক্ট।

window.documentবা কেবল documentসম্ভাব্য দৃশ্যমান (বা এখনও আরও ভাল: রেন্ডার) ডকুমেন্ট অবজেক্ট মডেল / ডিওএম এর প্রধান অবজেক্ট।

যেহেতু windowগ্লোবাল অবজেক্ট তাই আপনি এর কোনও বৈশিষ্ট্যকে কেবল সম্পত্তির নাম দিয়ে উল্লেখ করতে পারেন - সুতরাং আপনাকে লিখতে window.হবে না - এটি রানটাইম দ্বারা প্রকাশিত হবে।


46
একটি দস্তাবেজ একটি উইন্ডোর চেয়ে বড় হতে পারে - উইন্ডোটি আপনার ব্রাউজারে "দৃশ্যমান" অংশ।
ম্যান্ডি

1
@ ম্যানডি একটি এইচটিএমএল উপাদানটি নথির অংশ না থাকলে দৃশ্যমান না হয়। আপনি আইফ্রেমেস তৈরি করতে পারবেন কার উইন্ডোজগুলি পুরোপুরি দৃশ্যমান নয় যতক্ষণ না আপনি নথিতে
ইফ্রামটি

27
@ ম্যান্ডির মন্তব্য ভিউপোর্টেরwindow সাথে বিভ্রান্ত । এ হ'ল ব্রাউজার ট্যাব বা (বা অবমূল্যায়ন ) এর জন্য জাভাস্ক্রিপ্ট অবজেক্ট । ভিউপোর্ট এর অনুষ্ঠিত আয়তক্ষেত্র হয় ট্যাব বা ফ্রেম মধ্যে দেখা যায়। window<iframe><frame>document
বেনেট ব্রাউন

2
উইন্ডো ডকুমেন্ট বা ডকুমেন্ট সব সময় একই থাকে?
BOZ

2
উইন্ডোটি যেহেতু বিশ্বব্যাপী বস্তু - এটির প্রতিটি সম্পত্তি / পদ্ধতি আসলে [উইন্ডো] লিখে না ফেলেই অ্যাক্সেস করা যায় তাই উইন্ডো ডকুমেন্টটি কেবল নথি হিসাবেই লেখা যায় এবং অবশ্যই এটি একই জিনিসকে নির্দেশ করে - সম্পত্তি হিসাবে নিজের হিসাবে একই মাত্র উল্লেখযোগ্য একাধিক উপায়ে।
পিটার আরন জেন্টাই

101

ঠিক আছে, উইন্ডোটি প্রথম জিনিস যা ব্রাউজারে লোড হয়। এই উইন্ডো অবজেক্টটিতে দৈর্ঘ্য, ইনারওয়াইথ, ইনারহাইট, নাম, যেমন এটি বন্ধ করা হয়েছে, এর পিতামাতা এবং আরও অনেক কিছু বৈশিষ্ট্য রয়েছে।

ডকুমেন্ট অবজেক্টের কী হবে? দস্তাবেজ অবজেক্টটি আপনার এইচটিএমএল, এসপেক্স, পিএইচপি, বা অন্যান্য নথি যা ব্রাউজারে লোড হবে। দস্তাবেজটি আসলে উইন্ডো অবজেক্টের অভ্যন্তরে লোড হয়ে যায় এবং এতে শিরোনাম, ইউআরএল, কুকি ইত্যাদির মতো বৈশিষ্ট্য উপলব্ধ রয়েছে যার সত্যিকার অর্থে এর অর্থ কী? এর অর্থ আপনি যদি উইন্ডোটির জন্য কোনও সম্পত্তি অ্যাক্সেস করতে চান তবে এটি উইন্ডো pপ্রোপার্টি, যদি এটি নথি হয় তবে এটি উইন্ডো.ডোকামেন্ট p প্রপার্টি যা ডকুমেন্ট.প্রপ্রেটি হিসাবে সংক্ষেপে উপলব্ধ।

ডোম

এটি যথেষ্ট সহজ বলে মনে হচ্ছে। কিন্তু একবার আইএফআরএম চালু হওয়ার পরে কী ঘটে?

আইফ্রেম


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

এটি আরও ভাল বোঝার জন্য ছবিটির পরে সত্যই সহায়ক ব্যাখ্যা ..
ফারিস রায়হান

49

সংক্ষেপে, নীচে আরও বিশদ সহ,

  • window সেই প্রসঙ্গে জাভাস্ক্রিপ্টের জন্য কার্যকর করা প্রসঙ্গ এবং বিশ্বব্যাপী অবজেক্ট
  • document এইচটিএমএলকে বিশ্লেষণ করে আরম্ভ করা ডিওএম ধারণ করে
  • screen শারীরিক প্রদর্শনের সম্পূর্ণ পর্দার বর্ণনা দেয়

এই বিষয়গুলি সম্পর্কে বিশদ জানতে ডাব্লু 3 সি এবং মজিলা রেফারেন্স দেখুন See তিন মধ্যে সবচেয়ে মৌলিক সম্পর্ক প্রতিটি ব্রাউজারের ট্যাব নিজস্ব রয়েছে window, এবং একটি windowহয়েছে window.documentএবং window.screenবৈশিষ্ট্য। ব্রাউজার ট্যাব windowহ'ল বিশ্বব্যাপী প্রসঙ্গ, সুতরাং documentএবং screenউল্লেখ করুন window.documentএবং window.screen। তিনটি অবজেক্ট সম্পর্কে আরও বিশদ নীচে, ফ্লানাগনের জাভাস্ক্রিপ্ট অনুসরণ করা হয়েছে: সংজ্ঞায়িত গাইড

window

প্রতিটি ব্রাউজার ট্যাবের নিজস্ব শীর্ষ-স্তরের windowঅবজেক্ট থাকে। প্রতিটি <iframe>(এবং অবহেলিত <frame>) উপাদানটির নিজস্ব windowঅবজেক্টও রয়েছে, প্যারেন্ট উইন্ডোতে বাসা বাঁধে। এই উইন্ডোগুলির প্রতিটি তার নিজস্ব পৃথক বৈশ্বিক বস্তু পায়। window.windowসর্বদা উল্লেখ করে window, তবে window.parentএবং window.topউইন্ডোজগুলি ঘেরগুলিতে উল্লেখ করা যেতে পারে, অন্যান্য কার্যকরকরণ প্রসঙ্গে প্রবেশাধিকার দেয়। নীচে বর্ণিত ছাড়াও documentএবং screenবর্ণিত windowবৈশিষ্ট্যগুলির মধ্যে রয়েছে

  • setTimeout()এবং setInterval()ইভেন্ট হ্যান্ডলারগুলিকে একটি টাইমারকে বাধ্য করা
  • location বর্তমান ইউআরএল প্রদান
  • historyপদ্ধতি সহ back()এবং forward()ট্যাবটির পরিবর্তনীয় ইতিহাস প্রদান করে
  • navigator ব্রাউজার সফ্টওয়্যার বর্ণনা

document

প্রতিটি windowবস্তুর documentরেন্ডার করার জন্য একটি অবজেক্ট থাকে। এই বিষয়গুলি অংশে বিভ্রান্ত হয় কারণ একটি অনন্য আইডি নির্ধারিত করার সময় এইচটিএমএল উপাদানগুলি বিশ্বব্যাপী অবজেক্টে যুক্ত হয়। উদাহরণস্বরূপ, এইচটিএমএল স্নিপেটে

<body>
  <p id="holyCow"> This is the first paragraph.</p>
</body>

অনুচ্ছেদের উপাদান নিম্নলিখিত যে কোনও দ্বারা রেফারেন্স করা যেতে পারে:

  • window.holyCow অথবা window["holyCow"]
  • document.getElementById("holyCow")
  • document.body.firstChild
  • document.body.children[0]

screen

windowবস্তুর একটি হয়েছে screenশারীরিক প্রদর্শন বর্ণনা বৈশিষ্ট্য সঙ্গে বস্তু:

  • স্ক্রিন বৈশিষ্ট্য widthএবং heightসম্পূর্ণ পর্দা

  • স্ক্রিন বৈশিষ্ট্য availWidthএবং availHeightসরঞ্জামদণ্ড বাদ দিন

রেন্ডার করা ডকুমেন্টটি প্রদর্শিত পর্দার অংশটি জাভাস্ক্রিপ্টের ভিউপোর্ট , যা সম্ভবত বিভ্রান্তিকর কারণ আমরা অপারেটিং সিস্টেমের সাথে মিথস্ক্রিয়া সম্পর্কে কথা বলার সময় পর্দার একটি অ্যাপ্লিকেশন অংশটিকে উইন্ডো বলি। getBoundingClientRect()কোনো পদ্ধতি documentউপাদান সঙ্গে একটি বস্তু ফিরে আসবে top, left, bottom, এবং rightভিউপোর্টে উপাদান অবস্থান বর্ণনা বৈশিষ্ট্য।


window.onloadডকুমেন্ট অবজেক্ট ব্যবহার করার সমতুল্য নির্দেশনা আছে ?
ফিলিপকানাটো


48

এটি windowহ'ল আসল গ্লোবাল অবজেক্ট।

screenপর্দা, এটা ব্যবহারকারীর প্রদর্শন সম্পর্কে বৈশিষ্ট্য উপস্থিত রয়েছে।

documentযেখানে করে DOM হয়।


11
documentএও হতে পারে window.document, screenহতে পারে window.screen, এবং windowহতে পারে window.window(বা window.window.window) :-P
রকেট Hazmat

6
@ পিটারআরনজেন্টাই: এর কারণ windowএটি একটি বিশ্বব্যাপী পরিবর্তনশীল, যা এটি বিশ্বব্যাপী সামগ্রীর সম্পত্তি হিসাবে তৈরি করে window। :-)
রকেট হাজমাত

1
আমার এজ্যাক্স দ্বারা একটি নতুন পৃষ্ঠা খুলতে হবে, আমি পুরো বর্তমান পৃষ্ঠাটি নতুন সাথে প্রতিস্থাপন করতে চাই। আমি যদি $ (নথি) ব্যবহার করি তবে লোড (পৃষ্ঠা); বা $ (উইন্ডো) .লোড (পৃষ্ঠা); ?
মার্টিন এজে

11

windowতাই আপনি কল করতে পারেন, সবকিছু ধারণ করে window.screenএবং window.documentযারা উপাদান জন্য। এই অদ্ভুততাটি দেখুন, প্রতিটি বস্তুর বিষয়বস্তু সুন্দরভাবে মুদ্রণ করুন: http://jsfiddle.net/JKirchartz/82rZu/

আপনি ফায়ারব্যাগ / ডেভ সরঞ্জামগুলিতে অবজেক্টের সামগ্রীগুলিও দেখতে পারেন:

console.dir(window);
console.dir(document);
console.dir(screen);

windowসমস্ত কিছুর মূল, screenকেবল পর্দার মাত্রা রয়েছে এবং documentএটি শীর্ষ ডোম অবজেক্ট। যাতে আপনি এটি windowএকটি সুপার- document...


1

উইন্ডোটি প্রথম জিনিস যা ব্রাউজারে লোড হয়। এই উইন্ডো অবজেক্টটিতে দৈর্ঘ্য, ইনারওয়াইথ, ইনারহাইট, নাম, যেমন এটি বন্ধ করা হয়েছে, এর পিতা-মাতা এবং আরও অনেক কিছু বৈশিষ্ট্য রয়েছে।

দস্তাবেজ অবজেক্টটি আপনার এইচটিএমএল, এসপেক্স, পিএইচপি, বা অন্যান্য নথি যা ব্রাউজারে লোড হবে। দস্তাবেজটি আসলে উইন্ডো অবজেক্টের অভ্যন্তরে লোড হয়ে যায় এবং এতে শিরোনাম, ইউআরএল, কুকি ইত্যাদির মতো বৈশিষ্ট্য উপলব্ধ রয়েছে যার সত্যিকার অর্থে এর অর্থ কী? এর অর্থ আপনি যদি উইন্ডোটির জন্য কোনও সম্পত্তি অ্যাক্সেস করতে চান তবে এটি উইন্ডো pপ্রোপার্টি, যদি এটি নথি হয় তবে এটি উইন্ডো.ডোকামেন্ট p প্রপার্টি যা ডকুমেন্ট.প্রপ্রেটি হিসাবে সংক্ষেপে উপলব্ধ।

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