লোকেশনহোস্ট বনাম লোকেশনহোস্টনাম এবং ক্রস ব্রাউজারের সামঞ্জস্য?


365

ব্যবহারকারী এজেন্ট সঠিক ডোমেনের মাধ্যমে অ্যাক্সেস করছে কিনা এর মধ্যে কোনটির মধ্যে সবচেয়ে কার্যকর বনাম পরীক্ষা করা।

যদি তারা কোনও ধরণের ওয়েব প্রক্সি ব্যবহার করে ডোমেন অ্যাক্সেস করে থাকে (যেমন এটি জেএসটি ভেঙে দেয়) তবে আমরা একটি ছোট জেএস ভিত্তিক 'শীর্ষ বার' স্টাইল সতর্কতা প্রদর্শন করতে চাই।

আমরা নিম্নলিখিত ব্যবহার সম্পর্কে চিন্তা ছিল:

var r = /.*domain\.com$/;
if (r.test(location.hostname)) {
    // showMessage ...
}

এটি আমাদের যে কোনও সাব-ডোমেন ব্যবহার করে সেটির যত্ন নেবে।

আমাদের কোনটি হোস্ট বা হোস্ট-নেম ব্যবহার করা উচিত?

ফায়ারফক্স 5 এবং ক্রোমে 12 এ:

console.log(location.host);
console.log(location.hostname);

.. উভয়ের জন্য একই দেখায়।

বন্দরটি আসলে অ্যাড্রেস বারে নেই বলেই কি?

ডাব্লু 3 স্কুলগুলি বলছে হোস্টটিতে বন্দর রয়েছে।

অবস্থানের হোস্ট / হোস্টনামটি যাচাই করা উচিত বা আমরা আই 6 + এবং এটির যে সমস্ত অন্যান্য উপস্থিত থাকবে তার মধ্যে বেশ কিছুটা নিশ্চিত থাকতে পারি?


6
একটি বিষয় লক্ষণীয় হ'ল গুগল ক্রোমের একটি লোকেশন.অরগিন রয়েছে, যেখানে এমএসআইই এবং ফায়ারফক্স নেই। বিকাশকারী.মোজিলা.আর.ইন / উইন্ডো.লোকেশন
এমএসডিএন.মাইক্রোসফটকম /en-us/library/ms952653.aspx


উত্তর:


1063

ইন্টারেক্টিভ লিঙ্ক অ্যানাটমি

সামান্য মেমো হিসাবে: ইন্টারেক্টিভ লিঙ্ক অ্যানাটমি

-

সংক্ষেপে (একটি অবস্থান অনুমান করে http://example.org:8888/foo/bar#bang):

  • hostname আপনি দেয় example.org
  • host আপনি দেয় example.org:8888

87
একটি ছবি হাজার শব্দের সমান.
জ্যাক গিফিন

4
@ লোলজিরিউউজরি ... তবে ছবিটি বর্ণনা করতে কেবল সেই হাজার হাজার শব্দ ব্যবহার করা দরকার
আগি হামারথিফ

1
En.wikedia.org/wiki/… এর মতে , বন্দরটি হোস্টের একটি অংশ হিসাবে বিবেচনা করা উচিত নয় (তবে এটি কর্তৃপক্ষের একটি অংশ)।
এলেক

@ অ্যালেক এটি একটি আকর্ষণীয় প্রযুক্তিগত নোট; উইকিপিডিয়া উদ্ধৃতি দিয়ে ড্রিলিংয়ের মাধ্যমে জানা যায় যে আরএফসি 3986 অনুসারে হোস্টনাম , এবং পোর্টের সংক্ষিপ্তকরণের জন্য "কর্তৃপক্ষ" শব্দটি হওয়া উচিত: । আমি বিস্মিত হই যে কতগুলি আলোচনার এখনও location.hostঅবলম্বন করা হইতেছিল সেই সময় থেকেই ... আমি সন্দেহ করি যে এটি আজকের নামকরণ করা হয়েছে কারণ উপস্থিত কেউই এই আরএফসি পড়তে বা পড়তে ভাবেন নি।
জেমস আশ্চর্যডুড

সহজ সমাধানের জন্য আপনাকে অনেক ধন্যবাদ
তরুণ নাগপাল

70

হোস্টের মধ্যে কেবল পোর্ট নম্বর অন্তর্ভুক্ত থাকে যদি কোনও নির্দিষ্ট থাকে। যদি ইউআরএলটিতে বিশেষভাবে কোনও পোর্ট নম্বর না থাকে তবে এটি হোস্টনামের মতোই ফিরে আসে। আপনি পোর্ট নম্বর মেলাতে যত্নবান কিনা তা বেছে নিন। আরও তথ্যের জন্য https://developer.mozilla.org/en/window.location দেখুন ।

আমি ধরে নেব যে আপনি কেবল সাইটের নাম পেতে হোস্টনাম চান।


33

আপনি যদি ব্যবহার করার জন্য জিদ করছেন আপনি এটি window.location.origin পড়ার আগে এটি আপনার কোডের উপরে রাখতে পারেন toporigin

if (!window.location.origin) {
  window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
}

সমাধান

পিএস: রেকর্ডের জন্য, এটি আসলে আসল প্রশ্ন ছিল। এটি ইতিমধ্যে সম্পাদিত হয়েছিল :)


5
কিন্তু .... ওপি window.location.originতাদের প্রশ্নে কখনও উল্লেখ করেনি । তাদের প্রশ্ন আসলে বিশেষভাবে বিষয় আছে যা দ্বারা সংক্রান্ত ছিল না window.location.origin
ওয়ান্ডারপস

1
উইন্ডো.লোকেশন.রিগিনের ব্রাউজারের সামঞ্জস্যের সমস্যা রয়েছে তাও লক্ষণীয়। বিকাশকারী.মোজিলা.আর.ইন-
স্কট

10

আপনার প্রাথমিক প্রশ্নের উপরে উত্তর দেওয়া হয়েছে। আমি কেবল এটি উল্লেখ করতে চেয়েছিলাম যে আপনি যে রেজেক্স ব্যবহার করছেন তার একটি বাগ রয়েছে। এটি সফল হবে foo-domain.comযার উপর সাবডোমেন নয়domain.com

আপনি যা চান তা হ'ল:

/(^|\.)domain\.com$/


0

গুগল ক্রোম ব্রাউজারে লোকেশনটির মূল বৈশিষ্ট্য রয়েছে তা কেবল একটি নোট যুক্ত করতে। যা আপনাকে নীচের স্ক্রিনশটে প্রদর্শিত পোর্ট নম্বর থেকে প্রোটোকল থেকে পুরো ডোমেন দেয়। ক্রোম বিকাশকারী সরঞ্জাম

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