This media is not supported in your browser
VIEW IN TELEGRAM
#جاوا_اسکریپت
این ویدیو رو دیدم و بنظر ابزار جالبیه برای دیباگ کردن کد ها به خصوص برای Event ها که بعضا دیباگ کردنشون میتونه مشکل و سخت باشه.
🔴<CodeHub/>
این ویدیو رو دیدم و بنظر ابزار جالبیه برای دیباگ کردن کد ها به خصوص برای Event ها که بعضا دیباگ کردنشون میتونه مشکل و سخت باشه.
🔴<CodeHub/>
🔥3⚡2
𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد
#fun موقعیت : هر بار که میرم ببینم کی این باگو ساخته Channel | YouTube | Instagram
دقیقا خود منم وقتی شنبه برای اولین دوباره میرم پای کد هایی که هفته قبل زده بودم😂💔
💔3
این پکیج واقعا محشره , بیشتر مشکلاتی که سایت های ایرانی باهاشون درگیرند رو پوشش داده و داکیومنت ساده و خوبی هم داره.
🔗https://www.npmjs.com
🔴 <CodeHub/>
🔗https://www.npmjs.com
🔴 <CodeHub/>
❤3
Forwarded from 𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد (Mohammad hossein)
#javascript #object #reference_values #primitive #article
هیچ چیزی بهتر از این عکس نمیتونست فرق بین Primitive و Reference Values رو بهم نشون بده 😂
البته اینا شوخیه، اگر خواستید تفاوت این دوتا رو بهتر بدونید پیشنهاد میکنم این مقاله رو مطالعه کنید، چون هم فارسیه و هم مختصر و مفید توضیح داده ⚡
پ.ن : اگر با زبان برنامه نویسی جاوااسکریپت کار میکنید یکی از مباحث مهمی که حتما باید بدونید primitive و refrence value هستش 👌
𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد
#javascript #object #reference_values #primitive #article هیچ چیزی بهتر از این عکس نمیتونست فرق بین Primitive و Reference Values رو بهم نشون بده 😂 البته اینا شوخیه، اگر خواستید تفاوت این دوتا رو بهتر بدونید پیشنهاد میکنم این مقاله رو مطالعه کنید، چون هم…
حتی از زبان های برنامه نویسی هم میشه درس زندگی رو آموخت.
هر کسی در جای خودش ارزشمند و مهمه ❤️
هر کسی در جای خودش ارزشمند و مهمه ❤️
#TypeScript
🔸برای کسی که تازه کار با TypeScript رو شروع کرده، این زبان ممکنه یه کم ترسناک به نظر بیاد. ولی اگه چند تا نکته و ترفند خوب یاد بگیری، میتونی از قدرت TypeScript استفاده کنی تا کدهای ایمنتر و قابل اعتمادتر بنویسی.
1 - فعال کردن حالت Strict 🚦
یکی از بهترین ویژگیهای TypeScript سیستم بررسی دقیق نوعهاشه. با فعال کردن این حالت بررسی نوعها رو با دقت بیشتری انجام میده و پیامهای خطای بهتری هم بهت میده. برای فعال کردن این حالت، باید این گزینهی رو به فایل tsconfig.json اضافه کنی.
2 - از نوعهای صریح استفاده کن 📝
زبان TypeScript همونطور که از اسمش پیداست، درباره نوعهاست، پس خیلی مهمه که وقتی نوعها رو تعریف میکنی، دقیق و واضح باشی. به جای اینکه بذاری TypeScript خودش نوعها رو حدس بزنه، بهتره که نوع متغیرها، پارامترهای تابع و مقادیر بازگشتی رو صریحاً مشخص کنی. این کار خوندن کد رو راحتتر میکنه و باعث میشه که بقیه برنامهنویسها راحتتر کدتو بفهمن.
3 - از اینترفیسها استفاده کن📋
اینترفیسها (Interfaces) تو TypeScript بهت این امکان رو میدن که شکل اشیا رو تعریف کنی و نوع ویژگیهای اونا رو مشخص کنی. اینترفیسها ابزار قدرتمندی هستن برای اینکه بتونی کدهای قابل استفاده مجدد و قابل نگهداری بنویسی.
4 - استفاده از Union Types و Type Guards🔀
قابلیت Union types بهت این امکان رو میدن که یه متغیر داشته باشی که میتونه چند نوع مختلف داشته باشه. این خیلی به درد میخوره وقتی که با شرایطی سروکار داری که یه متغیر ممکنه چند تا مقدار مختلف داشته باشه.
با استفاده از union types و محافظت از نوعها (type protection)، میتونی کدی بنویسی که هم انعطافپذیرتره و هم محکمتر و با سناریوهای مختلف بهتر کنار میاد.
5 - از جنریکها برای کدهای قابلاستفاده مجدد استفاده کن🔧
جنریکها بهت این امکان رو میدن که اجزای کد رو به شکلی بنویسی که با نوعهای مختلف کار کنه. اونا انعطافپذیری و ایمنی نوع رو فراهم میکنن، چون بهت اجازه میدن که نوعها رو توی توابع، کلاسها و اینترفیسها پارامتری کنی. با استفاده از جنریکها میتونی توابع یا کلاسهایی بنویسی که با انواع مختلف دادهها کار کنن و در عین حال، ایمنی نوع رو حفظ کنی. اینجا یه مثال میزنم:
6 - استفاده از Type Assertion mama🔍
قابلیت Type Assertion یه روش برای اینه که به کامپایلر TypeScript بگی نوع مشخص یه مقدار چیه، وقتی که تو بیشتر از چیزی که چکر نوع میدونه، اطلاع داری. این کار بهت اجازه میده که نوعی رو که TypeScript حدس زده رو نادیده بگیری و مقدار رو به عنوان یه نوع دیگه در نظر بگیری. از Type Assertion با احتیاط استفاده کن و فقط وقتی این کار رو بکن که مطمئنی نوعها با هم سازگار هستن. اینجا یه مثال میزنم:
7 - استفاده از Intersection Types برای ترکیب انعطافپذیر نوعها🔗
قابلیت Intersection types بهت اجازه میده که چند نوع مختلف رو با هم ترکیب کنی و یه نوع جدید بسازی که همهی ویژگیها و متدهای هر کدوم از اون نوعها رو داره. این کار تو زمان تایپکردن خیلی انعطافپذیری میده و میتونه مخصوصاً وقتی با ساختارهای پیچیدهی آبجکتها سروکار داری، مفید باشه. اینجا یه مثال برات میزنم:
🌟زبان TypeScript یه زبان برنامهنویسی قدرتمندیه که تایپهای استاتیک و ویژگیهای پیشرفتهای برای توسعه جاوا اسکریپت داره. این نکات بهت کمک میکنن تا کدهای تمیزتر و قابلنگهداریتری بنویسی و بهرهوریت رو بالا ببری.
🔴<CodeHub/>
🔸برای کسی که تازه کار با TypeScript رو شروع کرده، این زبان ممکنه یه کم ترسناک به نظر بیاد. ولی اگه چند تا نکته و ترفند خوب یاد بگیری، میتونی از قدرت TypeScript استفاده کنی تا کدهای ایمنتر و قابل اعتمادتر بنویسی.
1 - فعال کردن حالت Strict 🚦
یکی از بهترین ویژگیهای TypeScript سیستم بررسی دقیق نوعهاشه. با فعال کردن این حالت بررسی نوعها رو با دقت بیشتری انجام میده و پیامهای خطای بهتری هم بهت میده. برای فعال کردن این حالت، باید این گزینهی رو به فایل tsconfig.json اضافه کنی.
{
"compilerOptions": {
"strict": true
}
}
2 - از نوعهای صریح استفاده کن 📝
زبان TypeScript همونطور که از اسمش پیداست، درباره نوعهاست، پس خیلی مهمه که وقتی نوعها رو تعریف میکنی، دقیق و واضح باشی. به جای اینکه بذاری TypeScript خودش نوعها رو حدس بزنه، بهتره که نوع متغیرها، پارامترهای تابع و مقادیر بازگشتی رو صریحاً مشخص کنی. این کار خوندن کد رو راحتتر میکنه و باعث میشه که بقیه برنامهنویسها راحتتر کدتو بفهمن.
function addNumbers(a: number, b: number): number {
return a + b;
}
3 - از اینترفیسها استفاده کن📋
اینترفیسها (Interfaces) تو TypeScript بهت این امکان رو میدن که شکل اشیا رو تعریف کنی و نوع ویژگیهای اونا رو مشخص کنی. اینترفیسها ابزار قدرتمندی هستن برای اینکه بتونی کدهای قابل استفاده مجدد و قابل نگهداری بنویسی.
interface User {
name: string;
age: number;
email: string;
}
4 - استفاده از Union Types و Type Guards🔀
قابلیت Union types بهت این امکان رو میدن که یه متغیر داشته باشی که میتونه چند نوع مختلف داشته باشه. این خیلی به درد میخوره وقتی که با شرایطی سروکار داری که یه متغیر ممکنه چند تا مقدار مختلف داشته باشه.
با استفاده از union types و محافظت از نوعها (type protection)، میتونی کدی بنویسی که هم انعطافپذیرتره و هم محکمتر و با سناریوهای مختلف بهتر کنار میاد.
type Shape = 'circle' | 'square' | 'triangle';
function getArea(shape: Shape, size: number): number {
if (shape === 'circle') {
return Math.PI * size * size;
} else if (shape === 'square') {
return size * size;
} else if (shape === 'triangle') {
return (Math.sqrt(3) / 4) * size * size;
}
}
const area = getArea('circle', 5);
5 - از جنریکها برای کدهای قابلاستفاده مجدد استفاده کن🔧
جنریکها بهت این امکان رو میدن که اجزای کد رو به شکلی بنویسی که با نوعهای مختلف کار کنه. اونا انعطافپذیری و ایمنی نوع رو فراهم میکنن، چون بهت اجازه میدن که نوعها رو توی توابع، کلاسها و اینترفیسها پارامتری کنی. با استفاده از جنریکها میتونی توابع یا کلاسهایی بنویسی که با انواع مختلف دادهها کار کنن و در عین حال، ایمنی نوع رو حفظ کنی. اینجا یه مثال میزنم:
function identity<T>(value: T): T {
return value;
}
const result = identity<number>(42);
6 - استفاده از Type Assertion mama🔍
قابلیت Type Assertion یه روش برای اینه که به کامپایلر TypeScript بگی نوع مشخص یه مقدار چیه، وقتی که تو بیشتر از چیزی که چکر نوع میدونه، اطلاع داری. این کار بهت اجازه میده که نوعی رو که TypeScript حدس زده رو نادیده بگیری و مقدار رو به عنوان یه نوع دیگه در نظر بگیری. از Type Assertion با احتیاط استفاده کن و فقط وقتی این کار رو بکن که مطمئنی نوعها با هم سازگار هستن. اینجا یه مثال میزنم:
let value: any = 'Hello, TypeScript!';
let length: number = (value as string).length;
7 - استفاده از Intersection Types برای ترکیب انعطافپذیر نوعها🔗
قابلیت Intersection types بهت اجازه میده که چند نوع مختلف رو با هم ترکیب کنی و یه نوع جدید بسازی که همهی ویژگیها و متدهای هر کدوم از اون نوعها رو داره. این کار تو زمان تایپکردن خیلی انعطافپذیری میده و میتونه مخصوصاً وقتی با ساختارهای پیچیدهی آبجکتها سروکار داری، مفید باشه. اینجا یه مثال برات میزنم:
type Greeting = {
greet(): void;
};
type Farewell = {
sayGoodbye(): void;
};
type GreetingAndFarewell = Greeting & Farewell;
class Person implements GreetingAndFarewell {
greet() {
console.log('Hello!');
}
sayGoodbye() {
console.log('Goodbye!');
}
}
const person = new Person();
person.greet(); // Hello!
person.sayGoodbye(); // Goodbye
🌟زبان TypeScript یه زبان برنامهنویسی قدرتمندیه که تایپهای استاتیک و ویژگیهای پیشرفتهای برای توسعه جاوا اسکریپت داره. این نکات بهت کمک میکنن تا کدهای تمیزتر و قابلنگهداریتری بنویسی و بهرهوریت رو بالا ببری.
🔴<CodeHub/>
Telegram
CodeHub
آیا علاقهمند به خلق دنیایی بهتر هستی؟
برنامه نویسی کلید خلاقیت بیحد و حصر است🚀⚡️
🧑💻 @farzinhamzehi
برنامه نویسی کلید خلاقیت بیحد و حصر است🚀⚡️
🧑💻 @farzinhamzehi
🔥3⚡1
دیباگ رو با پکیج Chalk راحتتر کن
پکیج Chalk یک پکیج برای Node.js است که به توسعهدهندهها این امکان رو میده که خروجیهای ترمینال رو با رنگهای مختلف استایل و قالببندی کنند. با این پکیج، میتونید رنگها و استایلها رو به برنامههای کامند لاین اضافه کنید و گزارشها، هشدارها و پیامهای خطا رو خواناتر و جذابتر کنید.
حالا چطوری از این پکیج استفاده کنیم؟
بعد از نصب Chalk با دستور مربوطه، میتونید به راحتی رنگها و استایلهای مختلف رو به خروجیهای کنسول اضافه کنید. مثلاً میتونید متن رو پررنگ کنید، زیرش خط بکشید یا رنگش رو به قرمز، سبز، آبی و... تغییر بدید:
به صورت کلی Chalk یک پکیج همه کاره و سبک وزنه، که با اضافه کردن رنگ و سبک به خروجی ترمینال در برنامه های Node.js، دیباگ کردن رو آسون تر میکنه.
برای اطلاعات بیشتر میتونید به گیتهابش مراجعه کنید:
🔗https://github.com/chalk/chalk
🔴</CodeHub>
پکیج Chalk یک پکیج برای Node.js است که به توسعهدهندهها این امکان رو میده که خروجیهای ترمینال رو با رنگهای مختلف استایل و قالببندی کنند. با این پکیج، میتونید رنگها و استایلها رو به برنامههای کامند لاین اضافه کنید و گزارشها، هشدارها و پیامهای خطا رو خواناتر و جذابتر کنید.
حالا چطوری از این پکیج استفاده کنیم؟
بعد از نصب Chalk با دستور مربوطه، میتونید به راحتی رنگها و استایلهای مختلف رو به خروجیهای کنسول اضافه کنید. مثلاً میتونید متن رو پررنگ کنید، زیرش خط بکشید یا رنگش رو به قرمز، سبز، آبی و... تغییر بدید:
const chalk = require('chalk');
console.log(chalk.green('CodeModule Success!'));
console.log(chalk.red.bold('CodeModule Error!'));
console.log(chalk.blue.underline('CodeModule Info!'));
به صورت کلی Chalk یک پکیج همه کاره و سبک وزنه، که با اضافه کردن رنگ و سبک به خروجی ترمینال در برنامه های Node.js، دیباگ کردن رو آسون تر میکنه.
برای اطلاعات بیشتر میتونید به گیتهابش مراجعه کنید:
🔗https://github.com/chalk/chalk
🔴</CodeHub>
👍2⚡1👾1
15 سایت کار راهانداز که هر برنامهنویسی باید بشناسه؛ وقتت رو به جای هدر دادن، هوشمندانه مدیریت کن!
🔗https://javascript.plainenglish.io
🔴 <CodeHub/>
🔗https://javascript.plainenglish.io
🔴 <CodeHub/>
🫡2👍1🔥1
اگه تازه کاری و خیلی رزومه درست و حسابی نداری؟
میتونی با استفاده از این ریپو که خیلی از زبون هارو هم پشتیبانی می کنه برای خودت نمونه کار درست کنی.
🔗https://github.com/practical-tutorials/project-based-learning
🔴</CodeHub>
میتونی با استفاده از این ریپو که خیلی از زبون هارو هم پشتیبانی می کنه برای خودت نمونه کار درست کنی.
🔗https://github.com/practical-tutorials/project-based-learning
🔴</CodeHub>
🔥2👏1
#github_repo 🗂
بنظرم یکی از بهترین ریپو های کامیونیتی برنامه نویسی ایران این ریپو هستش که تسک ها و کد های مربوط به فرایند استخدام شرکت های بزرگ و کوچک رو میذاره که هم فرایند استخدام رو بهتر می کنه و هم آدم از دیدن کد ها بقیه ضرر نمی کنه.
🔗https://github.com/laravel98developer/laravel-hiring-projects
🔴<CodeHub/>
بنظرم یکی از بهترین ریپو های کامیونیتی برنامه نویسی ایران این ریپو هستش که تسک ها و کد های مربوط به فرایند استخدام شرکت های بزرگ و کوچک رو میذاره که هم فرایند استخدام رو بهتر می کنه و هم آدم از دیدن کد ها بقیه ضرر نمی کنه.
🔗https://github.com/laravel98developer/laravel-hiring-projects
🔴<CodeHub/>
🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#Extension
بنظر خودم یکی از شاید بهترین اکستنشن های VS Code این اکستنشن jsoncrack هستش که تمام فایل های json رو به شکل نمودار در میاره که فهمش راحتر باشه.
🗂GitHub : https://github.com/AykutSarac/jsoncrack.com
🔴 <CodeHub/>
بنظر خودم یکی از شاید بهترین اکستنشن های VS Code این اکستنشن jsoncrack هستش که تمام فایل های json رو به شکل نمودار در میاره که فهمش راحتر باشه.
🗂GitHub : https://github.com/AykutSarac/jsoncrack.com
🔴 <CodeHub/>
🚩 پایتون ۳.۱۳؛ فیچرهای جدید و دپریکیشنها!
🔥 گیل (GIL) آپشنال: امکان بیلد گرفتن از CPython و غیرفعال کردن GIL. (در حالت عادی شما از GIL استفاده میکنید)
🔥 کامپایلر JIT: قراره در این پچ جدید، از یک کامپایلر just in time رونمایی شه که در یک سری از سناریوهای خاص، سرعت اجرای کدتون رو افزایش میده. این رو موقع بیلد گرفتن دستی از CPython میشه تنظیم کرد و بصورت پیشفرض غيرفعال هست.
🔥 تایپ هینت IsType و ReadOnly: دوتا تایپ جدید به typing اضافه شده. در مقاله مثال زدم.
🔥 ساپورت از سیستمعامل iOS: یک رلیز قابل نصب روی iOS قراره در این پچ قرار داده بشه. هنوز خبری از رلیز اندروید نیست ولی گویا دارن روش کار میکنن. (چیزی که بعنوان پایتون روی دیوایسهای اندرویدتون نصب دارید، رلیز لینوکس پایتون هست.)
🔥 بهبود Interaction: ارورها و تریسبکها دقیقتر و هوشمندتر شدن. همچنین ارورها بصورت رنگی نمایش داده میشن.
🔥 بهبود REPL: کامندهای exit، help و quit تغییر کردن.
و کلی فیچر و امکانات جدید که در مقاله زیر توضیح داده شده به همراه مثالهای ساده و قابل فهم:
🔗https://blog.imsadra.me/python-313-new-features-deprecations
🔴</CodeHub>
🔥 گیل (GIL) آپشنال: امکان بیلد گرفتن از CPython و غیرفعال کردن GIL. (در حالت عادی شما از GIL استفاده میکنید)
🔥 کامپایلر JIT: قراره در این پچ جدید، از یک کامپایلر just in time رونمایی شه که در یک سری از سناریوهای خاص، سرعت اجرای کدتون رو افزایش میده. این رو موقع بیلد گرفتن دستی از CPython میشه تنظیم کرد و بصورت پیشفرض غيرفعال هست.
🔥 تایپ هینت IsType و ReadOnly: دوتا تایپ جدید به typing اضافه شده. در مقاله مثال زدم.
🔥 ساپورت از سیستمعامل iOS: یک رلیز قابل نصب روی iOS قراره در این پچ قرار داده بشه. هنوز خبری از رلیز اندروید نیست ولی گویا دارن روش کار میکنن. (چیزی که بعنوان پایتون روی دیوایسهای اندرویدتون نصب دارید، رلیز لینوکس پایتون هست.)
🔥 بهبود Interaction: ارورها و تریسبکها دقیقتر و هوشمندتر شدن. همچنین ارورها بصورت رنگی نمایش داده میشن.
🔥 بهبود REPL: کامندهای exit، help و quit تغییر کردن.
و کلی فیچر و امکانات جدید که در مقاله زیر توضیح داده شده به همراه مثالهای ساده و قابل فهم:
🔗https://blog.imsadra.me/python-313-new-features-deprecations
🔴</CodeHub>
🔥2
#جاوااسکریپت
📸 با جاوااسکریپت دوربین خودتو روشن کن و عکس بگیر! توی این پست یاد میگیری چطور با چند خط کد ساده، دوربین گوشی یا لپتاپ رو به خدمت بگیری و یه عکس فوری بگیری. آمادهای برای کدنویسی؟ 🤩
🔴<CodeHub/>
📸 با جاوااسکریپت دوربین خودتو روشن کن و عکس بگیر! توی این پست یاد میگیری چطور با چند خط کد ساده، دوربین گوشی یا لپتاپ رو به خدمت بگیری و یه عکس فوری بگیری. آمادهای برای کدنویسی؟ 🤩
document.addEventListener("DOMContentLoaded", async () => {
const videoPlayer = document.getElementById("videoPlayer");
const canvasElement = document.getElementById("canvas");
const captureBtn = document.getElementById("captureBtn");
// نمایش عناصر مدیا پلیر
const showMediaPlayer = () => {
videoPlayer.style.display = "block";
captureBtn.style.display = "block";
};
// مخفی کردن مدیا پلیر
const noShowMediaPlayer = () => {
videoPlayer.style.display = "none";
captureBtn.style.display = "none";
};
// دسترسی به دوربین و پخش ویدیو
const getMedia = async () => {
// بررسی پشتیبانی مرورگر از MediaDevices API
if (!("mediaDevices" in navigator)) {
alert("Your browser does not support MediaDevices API");
return;
}
try {
// درخواست دسترسی به ویدیو
const stream = await navigator.mediaDevices.getUserMedia({ video: true });
showMediaPlayer(); // نمایش ویدیو و دکمه
videoPlayer.srcObject = stream; // نمایش جریان ویدیو در videoPlayer
} catch (error) {
console.error('Error accessing camera:', error);
}
};
// گرفتن عکس از جریان ویدیو
captureBtn.addEventListener("click", (event) => {
event.preventDefault();
noShowMediaPlayer(); // مخفی کردن ویدیو و دکمه
canvasElement.style.display = "block";
// کشیدن تصویر ویدیو روی بوم
let context = canvasElement.getContext("2d");
context.drawImage(videoPlayer, 0, 0, canvasElement.width, canvasElement.height);
// متوقف کردن جریان ویدیو
videoPlayer.srcObject.getVideoTracks().forEach(track => track.stop());
// تبدیل بوم به Blob و ذخیره آن در window.picture
canvasElement.toBlob(blob => {
window.picture = blob;
});
});
// فراخوانی تابع برای دریافت و نمایش جریان ویدیو
await getMedia();
});
🔴<CodeHub/>
🔥4
👨💻#جاوااسکریپت
🌍 با چند خط کد، موقعیتتو پیدا کن! 🗺
این اسکریپت ساده بهت کمک میکنه تا موقعیت جغرافیاییتو سریع پیدا کنی و یه لینک مستقیم به نقشه بگیری! 😎 دیگه نگران گم شدن نباش، با این کد همیشه موقعیتت تو جیبت هست!
📌 یه جاوااسکریپت توپ که خطاها رو هم مدیریت میکنه. امتحان کن و ببین چقدر کارش درسته!
🔴<CodeHub/>
🌍 با چند خط کد، موقعیتتو پیدا کن! 🗺
این اسکریپت ساده بهت کمک میکنه تا موقعیت جغرافیاییتو سریع پیدا کنی و یه لینک مستقیم به نقشه بگیری! 😎 دیگه نگران گم شدن نباش، با این کد همیشه موقعیتت تو جیبت هست!
📌 یه جاوااسکریپت توپ که خطاها رو هم مدیریت میکنه. امتحان کن و ببین چقدر کارش درسته!
function findLocation() {
let status = document.getElementById("status"); // عنصر وضعیت
let mapLink = document.getElementById("map-link"); // عنصر لینک نقشه
// تابعی که در صورت موفقیت مکانیابی اجرا میشود
const geoSuccess = (position) => {
const latitude = position.coords.latitude; // عرض جغرافیایی
const longitude = position.coords.longitude; // طول جغرافیایی
// پاک کردن پیام وضعیت و تنظیم لینک نقشه
status.textContent = "";
mapLink.href = `https://www.openstreetmap.org/#map=16/${latitude}/${longitude}`;
mapLink.textContent = `Latitude: ${latitude} , Longitude: ${longitude}`;
};
// تابعی که در صورت بروز خطا در مکانیابی اجرا میشود
const geoError = (error) => {
switch (error.code) {
case 0:
status.textContent = "Unknown error"; // خطای ناشناخته
break;
case 1:
status.textContent = "Permission denied"; // اجازه دسترسی رد شده
break;
case 2:
status.textContent = "Position unavailable"; // موقعیت ناموجود
break;
case 3:
status.textContent = "Timeout"; // زمان تمام شد
break;
default:
status.textContent = "Unable to retrieve your location"; // امکان بازیابی موقعیت نیست
}
};
// بررسی پشتیبانی از مکانیابی در مرورگر
if (!navigator.geolocation) {
status.textContent = "Geolocation is not supported by your browser"; // مکانیابی پشتیبانی نمیشود
} else {
status.textContent = "Locating…"; // در حال یافتن موقعیت
// درخواست موقعیت مکانی با تنظیمات سفارشی
navigator.geolocation.getCurrentPosition(
geoSuccess,
🔴<CodeHub/>
👍5🔥1