میدونید اگه توی فایرفاکس داخل یه فیلد
هیچی! قبول میکنه 😐
یعنی همون «lol» رو جلوی چشمتون نشون میده، انگار که یه عدد درسته. ولی وقتی مقدارش رو توی DOM بخونید، خالیه. یعنی مرورگر میگه: «باشه بهت نشونش دادم، ولی اصلاً حسابش نمیکنم.» شاهکاره واقعاً!
این یه باگه که از سال ۲۰۱۷ توی Bugzilla بازه و هنوزم وصله نشده:
[Bugzilla #1398528](https://bugzilla.mozilla.org/show_bug.cgi?id=1398528)
طبق استاندارد WHATWG**، ورودی از نوع number فقط باید رشتههای عددی رو قبول کنه. ولی فایرفاکس هرچی رو قبول میکنه — حروف، ایموجی، هرچی بخوای. فقط پشتصحنه مقدارش خالی میشه. یعنی میبینی چی تایپ کردی، ولی مرورگر اون رو معتبر نمیدونه. نتیجه؟ تجربه کاربری افتضاح.
حالا چرا درستش نمیکنن؟
جواب همیشگی: «خب اگه کاربر با اعداد عربی یا دوناگاری کار کنه چی؟ تازه فرق بین نقطه و ویرگول رو هم باید مشخص کنیم.» خلاصه ترجیح میدن همهچی رو آزاد بذارن تا اینکه واقعا مشکل رو حل کنن.
بریم سراغ کروم:
کروم بعضی وقتا اجازه میده توی فیلد number حرف **e رو بنویسید، چون ممکنه بخواید عددی مثل
جالبتر اینکه
از اون طرف اگه توی لوکالی باشید که جداکننده اعشار نقطه است، نوشتن
نتیجه نهایی:
* فایرفاکس: هرچی بنویسی (حتی «سلام») نشون میده، ولی زیرش خالیه.
* کروم: یه فیلتر داره، ولی اونم نصفهنیمه و پر از تناقض.
پس چی کار کنیم؟ خودمون کد بزنیم برای اعتبارسنجی، چون امیدی به مرورگرها نیست.
الان این باگ وارد سال هشتم شده، همچنان با برچسب «NEW» خوابیده و با توجه به بحثها، به این زودی هم درست نمیشه.
پ.ن. فایرفاکس اخیراً توی نسخه انگلیسیش، خطای اعتبارسنجی رو به زبان فنلاندی نشون داده! 🤦♂️
پ.ن.۲. تازه جدای اینا، اصلاً خیلیها معتقدن که
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
<input type="number">
بهجای عدد، چیزی مثل lol بنویسید چی میشه؟هیچی! قبول میکنه 😐
یعنی همون «lol» رو جلوی چشمتون نشون میده، انگار که یه عدد درسته. ولی وقتی مقدارش رو توی DOM بخونید، خالیه. یعنی مرورگر میگه: «باشه بهت نشونش دادم، ولی اصلاً حسابش نمیکنم.» شاهکاره واقعاً!
این یه باگه که از سال ۲۰۱۷ توی Bugzilla بازه و هنوزم وصله نشده:
[Bugzilla #1398528](https://bugzilla.mozilla.org/show_bug.cgi?id=1398528)
طبق استاندارد WHATWG**، ورودی از نوع number فقط باید رشتههای عددی رو قبول کنه. ولی فایرفاکس هرچی رو قبول میکنه — حروف، ایموجی، هرچی بخوای. فقط پشتصحنه مقدارش خالی میشه. یعنی میبینی چی تایپ کردی، ولی مرورگر اون رو معتبر نمیدونه. نتیجه؟ تجربه کاربری افتضاح.
حالا چرا درستش نمیکنن؟
جواب همیشگی: «خب اگه کاربر با اعداد عربی یا دوناگاری کار کنه چی؟ تازه فرق بین نقطه و ویرگول رو هم باید مشخص کنیم.» خلاصه ترجیح میدن همهچی رو آزاد بذارن تا اینکه واقعا مشکل رو حل کنن.
بریم سراغ کروم:
کروم بعضی وقتا اجازه میده توی فیلد number حرف **e رو بنویسید، چون ممکنه بخواید عددی مثل
1e10
(فرمت علمی) رو وارد کنید. اما اگه فقط «e» رو بنویسید… فیلد معتبر میشه! 😆جالبتر اینکه
1e-
رو هم معتبر میدونه، ولی 1ee
نه.از اون طرف اگه توی لوکالی باشید که جداکننده اعشار نقطه است، نوشتن
1,5
(با ویرگول) یا قبول میشه یا نمیشه — بستگی داره به نسخهی مرورگر، وضعیت ماه و احتمالاً میزان قهوهای که برنامهنویس کروم خورده!نتیجه نهایی:
* فایرفاکس: هرچی بنویسی (حتی «سلام») نشون میده، ولی زیرش خالیه.
* کروم: یه فیلتر داره، ولی اونم نصفهنیمه و پر از تناقض.
پس چی کار کنیم؟ خودمون کد بزنیم برای اعتبارسنجی، چون امیدی به مرورگرها نیست.
الان این باگ وارد سال هشتم شده، همچنان با برچسب «NEW» خوابیده و با توجه به بحثها، به این زودی هم درست نمیشه.
پ.ن. فایرفاکس اخیراً توی نسخه انگلیسیش، خطای اعتبارسنجی رو به زبان فنلاندی نشون داده! 🤦♂️
پ.ن.۲. تازه جدای اینا، اصلاً خیلیها معتقدن که
<input type="number">
بهخودش هیچ فایدهای نداره و حتی مضر هم هست#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
bugzilla.mozilla.org
1398528 - HTML <input type=number> should not allow users to type in characters that are not part of a number
NEW (nobody) in Core - DOM: Core & HTML. Last updated 2025-08-29.
👍1🔥1
Capture node screenshot
این قابلیت در DevTools کروم و فایرفاکس به شما اجازه میدهد که یک عنصر مشخص (یا همان نود) در صفحه را بهصورت تصویر ذخیره کنید، بدون اینکه نیاز باشد کل صفحه را اسکرول کنید یا اسکرینشات بگیرید.
روش کار بهطور خلاصه:
1. باز کردن DevTools:
* در کروم یا فایرفکس، کلید F12 یا Ctrl+Shift+I را فشار دهید.
2. انتخاب نود موردنظر:
* در تب Elements یا Inspector**، روی عنصر HTML که میخواهید اسکرینشاتش را بگیرید کلیک کنید.
3. **گرفتن اسکرینشات:
* در کروم: راستکلیک روی نود → گزینهی Capture node screenshot را انتخاب کنید.
* در فایرفکس: راستکلیک روی نود → گزینهی Take a screenshot of node یا مشابه آن را انتخاب کنید.
DevTools سپس همان بخش خاص را پردازش کرده و یک تصویر PNG از آن نود ایجاد میکند.
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
این قابلیت در DevTools کروم و فایرفاکس به شما اجازه میدهد که یک عنصر مشخص (یا همان نود) در صفحه را بهصورت تصویر ذخیره کنید، بدون اینکه نیاز باشد کل صفحه را اسکرول کنید یا اسکرینشات بگیرید.
روش کار بهطور خلاصه:
1. باز کردن DevTools:
* در کروم یا فایرفکس، کلید F12 یا Ctrl+Shift+I را فشار دهید.
2. انتخاب نود موردنظر:
* در تب Elements یا Inspector**، روی عنصر HTML که میخواهید اسکرینشاتش را بگیرید کلیک کنید.
3. **گرفتن اسکرینشات:
* در کروم: راستکلیک روی نود → گزینهی Capture node screenshot را انتخاب کنید.
* در فایرفکس: راستکلیک روی نود → گزینهی Take a screenshot of node یا مشابه آن را انتخاب کنید.
DevTools سپس همان بخش خاص را پردازش کرده و یک تصویر PNG از آن نود ایجاد میکند.
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
###
مرورگر برای نمایش صفحه نیاز دارد منابع لازم مثل CSS، JS، تصاویر و ویدیو را دانلود کند. اول HTML دریافت و تحلیل میشود و همزمان اسکنر پیشبارگذاری منابع را پیدا و دانلود میکند. همه منابع براساس اولویت در شبکه بارگذاری میشوند.
ویژگی
* high → اولویت بالا
* low → اولویت پایین
* auto → رفتار پیشفرض مرورگر
میتوان از این ویژگی در عناصر زیر استفاده کرد:
---
### کاربردهای متداول
* بارگذاری تصاویر مهم صفحه (مثلاً تصاویر LCP) با اولویت بالا
* کاهش اولویت تصاویر غیرضروری (مثل تصاویر کاروسل)
* پیشبارگذاری منابع کماهمیت با اولویت پایین
* افزایش یا کاهش اولویت اسکریپتها بسته به نیاز
همچنین میتوان اولویت را هنگام فراخوانی
---
### نکته مهم
`fetchpriority` ابزار جدیدی است برای کنترل هوشمندانه بارگذاری منابع و مکمل روشهای قدیمی مثل:
*
*
*
برای جزئیات بیشتر میتوانید مقاله کامل را در web.dev بخوانید:
[https://web.dev/articles/fetch-priority](https://web.dev/articles/fetch-priority)
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
fetchpriority
در HTMLمرورگر برای نمایش صفحه نیاز دارد منابع لازم مثل CSS، JS، تصاویر و ویدیو را دانلود کند. اول HTML دریافت و تحلیل میشود و همزمان اسکنر پیشبارگذاری منابع را پیدا و دانلود میکند. همه منابع براساس اولویت در شبکه بارگذاری میشوند.
ویژگی
fetchpriority
به شما اجازه میدهد اولویت بارگذاری منابع را مشخص کنید:* high → اولویت بالا
* low → اولویت پایین
* auto → رفتار پیشفرض مرورگر
میتوان از این ویژگی در عناصر زیر استفاده کرد:
<link>`،
<script>،
<img> و
<iframe>`.<img src="lcp-image.jpg" fetchpriority="high">
---
### کاربردهای متداول
* بارگذاری تصاویر مهم صفحه (مثلاً تصاویر LCP) با اولویت بالا
* کاهش اولویت تصاویر غیرضروری (مثل تصاویر کاروسل)
* پیشبارگذاری منابع کماهمیت با اولویت پایین
* افزایش یا کاهش اولویت اسکریپتها بسته به نیاز
همچنین میتوان اولویت را هنگام فراخوانی
fetch()
مشخص کرد:const response = await fetch('/resource', { priority: 'low' });
---
### نکته مهم
`fetchpriority` ابزار جدیدی است برای کنترل هوشمندانه بارگذاری منابع و مکمل روشهای قدیمی مثل:
*
loading
در <img>
و <iframe>
*
preload
در <video>
و <link>
*
defer
و async
در <script>
برای جزئیات بیشتر میتوانید مقاله کامل را در web.dev بخوانید:
[https://web.dev/articles/fetch-priority](https://web.dev/articles/fetch-priority)
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
web.dev
Optimize resource loading with the Fetch Priority API | Articles | web.dev
The Fetch Priority API indicates the relative priority of resources to the browser. It can enable optimal loading and improve Core Web Vitals.
Media is too big
VIEW IN TELEGRAM
ماشین قابلآموزش (Teachable Machine) یک آزمایش تعاملی است که یادگیری ماشین را برای همه سادهتر میکند؛ بهطوریکه مستقیماً در مرورگر اجرا میشود و هیچ نیازی به کدنویسی ندارد. روشی سریع و ساده برای ساخت مدلهای یادگیری ماشین جهت استفاده در وبسایتها، اپلیکیشنها و موارد دیگر — بدون نیاز به دانش تخصصی یا کدنویسی.
🔗https://teachablemachine.withgoogle.com/
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
🔗https://teachablemachine.withgoogle.com/
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
This media is not supported in your browser
VIEW IN TELEGRAM
🖤وفات حضرت معصومه سلاماللهعلیها
🏴 رحلت شهادتگونه بانوی مهر و وفا، اُخت الرضا، عمه سادات، کریمه اهل بیت علیهمالسلام، حضرت فاطمه معصومه سلام الله تسلیت باد.
🔗https://www.namasha.com/v/IM2n2FnC
#️⃣#event
👥@IR_javascript_group
🆔@IR_javascript
🏴 رحلت شهادتگونه بانوی مهر و وفا، اُخت الرضا، عمه سادات، کریمه اهل بیت علیهمالسلام، حضرت فاطمه معصومه سلام الله تسلیت باد.
🔗https://www.namasha.com/v/IM2n2FnC
#️⃣#event
👥@IR_javascript_group
🆔@IR_javascript
❤9👎3😱1
چگونگی تست WebKit یا Safari روی ویندوز و لینوکس
به سادگی از BrowserStack استفاده کنید
اما مشکل اینجاست که همه نمیتوانند حتی ۱۵۰ دلار در سال برای پلن فریلنسری هزینه کنند… آیا راهی وجود دارد؟
بله، راه وجود دارد!
BrowserStack بهطور فعال از پروژههای Open Source پشتیبانی میکند و لایسنس یکساله رایگان ارائه میدهد!
اگر پروژهی شما چنین شرایطی دارد، کافی است به این صفحه
بروید و لینک مخزن (repository) خود را وارد کنید.
نکته مهم: باید لایسنس مناسب داشته باشید. لیست کامل را پیدا نکردم، اما مطمئنم که GPL، BSD و MIT پوشش داده شدهاند. من هم خودم Creative Commons Attribution 4.0 International را وارد کردم.
دسترسی هر سال تمدید میشود تا زمانی که مخزن در دسترس باشد
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
به سادگی از BrowserStack استفاده کنید
اما مشکل اینجاست که همه نمیتوانند حتی ۱۵۰ دلار در سال برای پلن فریلنسری هزینه کنند… آیا راهی وجود دارد؟
بله، راه وجود دارد!
BrowserStack بهطور فعال از پروژههای Open Source پشتیبانی میکند و لایسنس یکساله رایگان ارائه میدهد!
اگر پروژهی شما چنین شرایطی دارد، کافی است به این صفحه
بروید و لینک مخزن (repository) خود را وارد کنید.
نکته مهم: باید لایسنس مناسب داشته باشید. لیست کامل را پیدا نکردم، اما مطمئنم که GPL، BSD و MIT پوشش داده شدهاند. من هم خودم Creative Commons Attribution 4.0 International را وارد کردم.
دسترسی هر سال تمدید میشود تا زمانی که مخزن در دسترس باشد
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
ویدیو دوبله شده در مورد الگو های طراحی در اپلیکیشن های تحت وب [+لینک]
در این دوره، با الگوهای طراحی برای پروژههای فرانتاند با استفاده از جاوا اسکریپت آشنا خواهید شد. مزایا و چالشهای الگوهای طراحی را درک خواهید کرد و نحوه پیادهسازی الگوهای مختلف برای ارتقای خوانایی، قابلیت استفاده مجدد، مدولار بودن و مقیاسپذیری پروژههای جاوا اسکریپت ساده خود را خواهید آموخت.
🔗https://www.aparat.com/v/phnxki9?playlist=20513366
#️⃣#tip #dub
👥@IR_javascript_group
🆔@IR_javascript
در این دوره، با الگوهای طراحی برای پروژههای فرانتاند با استفاده از جاوا اسکریپت آشنا خواهید شد. مزایا و چالشهای الگوهای طراحی را درک خواهید کرد و نحوه پیادهسازی الگوهای مختلف برای ارتقای خوانایی، قابلیت استفاده مجدد، مدولار بودن و مقیاسپذیری پروژههای جاوا اسکریپت ساده خود را خواهید آموخت.
🔗https://www.aparat.com/v/phnxki9?playlist=20513366
#️⃣#tip #dub
👥@IR_javascript_group
🆔@IR_javascript
👍1