سؤال

يقوم Safari على iPhone تلقائيًا بإنشاء روابط لسلاسل من الأرقام التي تظهر لأرقام الهاتف.أنا أكتب صفحة ويب تحتوي على عنوان IP، ويقوم Safari بتحويل ذلك إلى رابط لرقم الهاتف.هل من الممكن تعطيل هذا السلوك لصفحة كاملة أو عنصر في الصفحة؟

هل كانت مفيدة؟

المحلول

يبدو أن هذا هو الشيء الصحيح الذي يجب القيام به ، وفقًا لـ Safari HTML Reference:

<meta name="format-detection" content="telephone=no">

إذا قمت بتعطيل هذا ولكن لا تزال تريد روابط الهاتف ، فلا يزال بإمكانك استخدام مخطط URI "Tel".

ها هو الصفحة ذات الصلة في مكتبة مطور Apple.

نصائح أخرى

لتعطيل مظهر تحليل الهاتف لعناصر محددة ، يبدو أن CSS تقوم بالخدعة:

.element { pointer-events: none; }
.element > a { text-decoration:none; color:inherit; }

القاعدة الأولى تعطل النقر ، والثاني يعتني بالتصميم.

كانت لدي نفس المشكله. لقد وجدت خاصية على UIWEBView تتيح لك إيقاف تشغيل كاشفات البيانات.

self.webView.dataDetectorTypes = UIDataDetectorTypeNone;

أضف هذا ، أعتقد أنه ما تبحث عنه:

<meta name = "format-detection" content = "telephone=no">

أستخدم نجار عرض الصفر &zwj;

فقط ضع ذلك في مكان ما في رقم الهاتف ويعمل بالنسبة لي. تم اختباره في Browserstack (و Litmus لرسائل البريد الإلكتروني).

حل WebView!

لتطبيقات Phonegap-IpeOne / PhoneGap-IOS ، يمكنك تعطيل اكتشاف أرقام الهاتف عن طريق إضافة ما يلي إلى مندوب تطبيق مشروعك:

// ...

- (void)webViewDidStartLoad:(UIWebView *)theWebView 
{
    // disable telephone detection, basically <meta name="format-detection" content="telephone=no" />
    theWebView.dataDetectorTypes = UIDataDetectorTypeAll ^ UIDataDetectorTypePhoneNumber;

    return [ super webViewDidStartLoad:theWebView ];
}

// ...

مصدر: تعطيل الكشف الهاتفي في Phonegap-IOS.

لتعطيل اكتشاف رقم الهاتف على جزء من الصفحة، قم بلف النص المتأثر في علامة ربط باستخدام href = "#".إذا قمت بذلك، فيجب على Safari المحمول وUIWebView ترك الأمر بمفرده.

<a href="#"> 1234567 </a>

أعتقد أنني وجدت حلاً: ضع الرقم داخل أ <label> عنصر. لم تجرب أي علامات أخرى ، ولكن <div> تركها نشطة على الشاشة الرئيسية ، حتى مع telephone=no ينسب.

يبدو من الواضح من التعليقات السابقة أن علامة التعريف قد نجحت ، ولكن لسبب ما تم كسرها تحت الإصدارات اللاحقة من iOS ، على الأقل في بعض الظروف. أنا أجري 4.0.1.

يمكنك أيضا استخدام <a> تسمية مع javascript: void(0) كما href القيمة.

مثال على النحو التالي:
<a href="javascript: void(0)">+44 456 77 89 87</a>

واجهت نفس المشكلة ، ولكن على تطبيق ويب iPad.

لسوء الحظ ، لا ...

 <meta name = "format-detection" content = "telephone=no">

ولا ...

&#48; = 0
&#57; = 9

... عمل.

ولكن ، إليك ثلاثة اختراقات قبيحة:

  • استبدال الرقم "0" بالحرف "o"
  • استبدال الرقم "1" بالحرف "l"
  • أدخل فترة لا معنى لها: على سبيل المثال ، 555.5<span>5</span>5.5555

اعتمادًا على الخط الذي تستخدمه ، فإن الأولين بالكاد ملحوظان. من الواضح أن هذا الأخير يتضمن رمزًا زائد ، ولكنه غير مرئي للمستخدم.

يخترق Kludgy بالتأكيد ، وربما لا يكون قابلاً للتطبيق إذا كنت تقوم بإنشاء الكود ديناميكيًا من البيانات ، أو إذا لم تتمكن من تلوث بياناتك بهذه الطريقة.

ولكن ، كافية في قرصة.

كان لدي ABN (رقم الأعمال الأسترالي) الذي أصر عليه iPad Safari على التحول إلى رابط رقم الهاتف. لم يساعد أي من الاقتراحات. كان الحل الخاص بي هو وضع علامات IMG بين الأرقام.

ABN 98<img class="PreventSafariFromTurningIntoLink" /> 009<img /> 675<img /> 709

يوجد الفصل فقط لتوثيق علامات IMG.

يعمل على iPad 1 (4.3.1) و iPad 2 (4.3.3).

تجربتي هي نفسها كما ذكر البعض الآخر. علامة التعريف ...

<meta name = "format-detection" content = "telephone=no">

... يعمل عند تشغيل موقع الويب في Safari Mobile (أي ، مع Chrome) ولكنه يتوقف عن العمل عند التشغيل كحزب ويب (أي ، يتم حفظه على الشاشة الرئيسية ويعمل بدون Chrome).

إن حلي الأقل من المثالي هو إدراج القيم في حقول الإدخال ...

<input type="text" readonly="readonly" style="border:none;" value="3105551212">

إنه أقل من مثالي لأنه على الرغم من أن الحدود التي لا يتم تعيينها على أي شيء ، فإن iOS يجعل شريط رمادي متعدد بكسل فوق الحقل. ولكن ، إنه أفضل من رؤية الرقم كرابط.

لقد اختبرت هذا بنفسي ووجدت أنه يعمل على الرغم من أنه ليس بالتأكيد حلًا أنيقًا. سيمنع إدخال فترة فارغة في رقم الهاتف أجهزة الكشف عن البيانات من تحويلها إلى رابط.

(604) 555<span></span> -4321

<meta name = "format-detection" content = "telephone=no"> لا يعمل لرسائل البريد الإلكتروني: إذا كان HTML الذي تستعد له هو بريد إلكتروني ، فسيتم تجاهل Metatag.

إذا كان ما تستهدفه هو رسائل بريد إلكتروني ، فإليك حلًا قبيحًا آخر ولكنه يعمل على:

مثال على بعض HTML الذي تريد تجنب ربطه أو تنسيق تلقائي:

will cease operations <span class='ios-avoid-format'>on June 1,
2012</span><span></span>.

و CSS التي ستجعل السحر يحدث:

@media only screen and (device-width: 768px) and (orientation:portrait){
span.ios-date{display:none;}
span.ios-date + span:after{content:"on June 1, 2012";}
}

العيب: قد تحتاج إلى استعلام وسائل الإعلام لكل من مجموعات iPad/iPhone Portrait/Landscape

يمكنك محاولة ترميزها ككيانات HTML:

&#48; = 0
&#57; = 9

نفس المشكلة في تطبيق Sencha Touch تم حلها باستخدام علامة التعريف (<meta name="format-detection" content="telephone=no">) في index.html من التطبيق.

الخدعة التي أستخدمها تعمل على أكثر من مجرد Safari المتنقل هي استخدام رموز HTML Escape وارتفاع بسيط في رقم الهاتف. هذا يجعل من الصعب على المتصفح "تحديد" رقم الهاتف ، أي

Phone: 1-8&#48;&#48;<span>-</span>62&#48;<span>-</span>38&#48;3

لدي أيضًا هذه المشكلة: تقوم Safari ومتصفحات الهاتف المحمول الأخرى بتحويل معرفات ضريبة القيمة المضافة إلى أرقام هواتف. لذلك أريد طريقة نظيفة لتجنبها على عنصر واحد ، وليس الصفحة بأكملها (أو الموقع).
أشارك حلًا ممكنًا وجدته ، إنه دون المستوى الأمثل ولكن لا يزال قابلاً للتطبيق: لقد وضعت ، داخل الرقم الذي لا أريد أن أصبح أ tel: الرابط ، &#8288; كيان HTML الذي هو Word-joiner شخصية غير مرئية. حاولت أن أبقى أكثر دلالية (حسناً ، على الأقل نوعًا ما) من خلال وضع هذا الشار في بعض المعنى ، على سبيل المثال ، اخترت معرف ضريبة القيمة المضافة التي اخترتها لوضعها بين مجموعات مختلفة من الأرقام وفقًا لـ تنسيقها لذلك بالنسبة لضريبة القيمة المضافة الإيطالية كتبت: 0613605&#8288;048&#8288;8 الذي يؤدي إلى 0613605⁠048⁠8 ولا يتم تحويله في رقم هاتف.

خيار آخر هو استبدال الواصلة في رقم هاتفك بواسطة الحرف (U+2011 'Unicode non-constring hyphen')

لقد كنت في حيرة من أمري هذا لفترة من الوقت ، لكنني اكتشفت ذلك أخيرًا. لقد أجرينا تحديثات لموقعنا وكان لدينا بعض الأرقام تحول إلى رابط وبعضها لم يكن كذلك. تبين أن الأرقام لن يتم تحويلها إلى رابط إذا كانت فيu003Cfieldset style=";text-align:right;direction:rtl"> . من الواضح أنه ليس الحل الصحيح لمعظم الظروف ، ولكن في البعض سيكون هذا هو الحديد الصحيح.

هذه الإجابة تتفوق على كل شيء اعتبارًا من 6-13-2012:

<a href="#" style="color: #666666; 
                   text-decoration: none;
                   pointer-events: none;">
  Boca Raton, FL 33487
</a>

قم بتغيير اللون إلى أي شيء يتطابق مع النص الخاص بك ، يزيل زخرفة النص تسطيره ، ويمنع مؤشر أحداثه من النظر إليه كوصلة في المتصفح (لا يتغير المؤشر إلى اليد)

هذا مثالي لرسائل البريد الإلكتروني HTML على iOS و Browser.

لماذا تريد إزالة الارتباط ، فإنه يجعل من الصالح للاستخدام أن يكون لديك eoption.

إذا كنت ترغب ببساطة في إزالة التحرير التلقائي ، ولكن حافظ على الرابط يعمل ، فقط أضف هذا إلى CSS الخاص بك ...

a[href^=tel] {
 color: inherit;
 text-decoration:inherit;
}

قم بتقسيم الرقم إلى كتل منفصلة من النص

301 <div style="display:inline-block">441</div> 3909

حل آخر هو استخدام صورة رقم IP

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top