Mobile Safari में फ़ोन नंबर लिंक करने को कैसे निष्क्रिय करें?


363

IPhone पर सफारी स्वचालित रूप से उन अंकों के तार के लिए लिंक बनाता है जो टेलीफोन नंबर पर दिखाई देते हैं। मैं एक वेब पेज लिख रहा हूं जिसमें एक आईपी पता है, और सफारी उस फोन नंबर लिंक में बदल रहा है। क्या इस व्यवहार को पूरे पृष्ठ या एक पृष्ठ पर एक तत्व के लिए अक्षम करना संभव है?


यह भी देखें stackoverflow.com/questions/3649702/...
jrummell

जवाबों:


714

सफारी HTML संदर्भ के अनुसार ऐसा करना सही प्रतीत होता है :

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

यदि आप इसे अक्षम करते हैं लेकिन फिर भी टेलीफोन लिंक चाहते हैं, तो भी आप "टेली" यूआरआई योजना का उपयोग कर सकते हैं।

यहां Apple के डेवलपर लाइब्रेरी में प्रासंगिक पृष्ठ है


1
यह बस काम नहीं करता है। वैसे भी iOS 4.3.1 पर वेब ऐप्स के लिए नहीं।
mhenry1384


2
बस यह नोट करना चाहता था कि यह हाल के संस्करणों के लिए भी काम करता है, जैसे कि 5.1.1 जो मैं अभी कर रहा हूं।
डेव स्टीन

4
क्या इसे केस के आधार पर केस में लागू किया जा सकता है? उदाहरण के लिए, एक पृष्ठ पर 1 नंबर स्ट्रिंग जिसे मैं फोन नंबर के रूप में व्याख्या नहीं करना चाहता हूं, लेकिन एक पृष्ठ पर 6 अन्य लोगों के लिए व्यवहार रखें कि मैं स्वचालित रूप से एक फोन नंबर के रूप में व्याख्या करना चाहता हूं?
jpostdesign

3
यह 2019 में IOS 12 के तहत पूरी तरह से ठीक काम करता है! Arn
मैट

38

विशिष्ट तत्वों के लिए फ़ोन पार्सिंग उपस्थिति को अक्षम करने के लिए, यह सीएसएस चाल करने के लिए लगता है:

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

पहला नियम क्लिक को निष्क्रिय करता है, दूसरा स्टाइल का ध्यान रखता है।


5
महान समाधान जहां आप स्टाइलिंग / प्रारूपण को बहुत ही विशिष्ट स्थान पर प्रतिबंधित करना चाहते हैं।
mikevoermans

36

मैं एक शून्य-चौड़ाई वाले योजक का उपयोग करता हूं &zwj;

बस उस फोन नंबर में कहीं डाल दो और यह मेरे लिए काम करता है। BrowserStack (और ईमेल के लिए लिटमस) में परीक्षण किया गया।


1
यह मेरे लिए काम करता है। मैं इसे पहले नंबर से पहले जोड़ता हूं।
विन्क्सबक्स

1
सबसे अच्छा समाधान!
एल सिरो

मैंने एक HTML ईमेल हस्ताक्षर बनाया और यह एकमात्र समाधान था जिसने iOS 10 मेल को फोन नंबर के रूप में (गैर-फोन) नंबर का गलत तरीके से पता लगाने से रोकने में मदद की।
निक

1
नीट समाधान। IPhone 6S (+) / iOS 9.
Ain Tohvri

1
यदि आप एक सफारी फ़ाइल का उपयोग करने के लिए पूछ रहे हैं, तो यह केवल एकमात्र व्यावहारिक समाधान है जो HTML पेज को उत्पन्न करने के लिए <? Xml-stylheet> निर्देश का उपयोग करता है। मोबाइल सफारी मूल XML में किसी भी लंबी संख्या को "tel:" लिंक में परिवर्तित करता है, भले ही स्रोत HTML (?) न हो।
मार्क रीनहोल्ड

33

मुझे भी यही समस्या आ रही थी। मुझे UIWebView पर एक संपत्ति मिली, जो आपको डेटा डिटेक्टर बंद करने की अनुमति देती है।

self.webView.dataDetectorTypes = UIDataDetectorTypeNone;

अंत में, एक समाधान जो मेरे लिए काम करता था। बेशक यह केवल UIWebView का उपयोग करके अपने स्वयं के उद्देश्य-सी एप्लिकेशन लिखने वाले लोगों के साथ काम करेगा, और सफारी ऐप का उपयोग नहीं करेगा। धन्यवाद!!
iandotkelly

29

इसे जोड़ें, मुझे लगता है कि यह वही है जो आप खोज रहे हैं:

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

10

वेबव्यू के लिए समाधान!

PhoneGap-iPhone / 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 ];
}

// ...

source: PhoneGap-iOS में टेलीफोन डिटेक्शन को डिसेबल करें


इससे पहले कि मैं badger110 टिप्पणी पढ़ने से पहले awoodland के कोड को लागू करने के लिए गया था। तो वहाँ मैं AppDelegate.m में हूँ, जब यह मेरे साथ होता है कि मैंने इसे कहीं देखा है। मैं चारों ओर देखना शुरू करता हूं, xib फ़ाइल में चेकबॉक्स ढूंढता हूं और मुझे लगता है कि मैंने अभी कुछ जादुई खोज की है। मैं इस शानदार खोज को पोस्ट करने के लिए वापस आता हूं और badger110 की टिप्पणी पा रहा हूं। TL DR: टिप्पणियों को पहले पढ़ें, फिर सिर पर हाथ फेरें।
टीना डी।

8

किसी पृष्ठ के हिस्से पर फ़ोन नंबर की पहचान को अक्षम करने के लिए, एंकर टैग में प्रभावित पाठ को href = "#" के साथ लपेटें। यदि आप ऐसा करते हैं, तो मोबाइल सफारी और UIWebView को इसे अकेला छोड़ देना चाहिए।

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

1
यह वही है जो मैंने metaकिया था क्योंकि टैग काम नहीं कर रहा था। हालाँकि, <a href="javascript:;">URL बदलाव से होने वाले दुष्प्रभावों को रोकने के लिए संभवतः यह बेहतर है ।
JustJohn

यह मेरे लिए HTML ईमेल में काम करता है। मैं केवल एक फ़ोन नंबर अक्षम करना चाहता था, सभी नहीं। मैंने सिर्फ स्टाइल जोड़ा = "टेक्स्ट-डेकोरेशन: कोई नहीं;" रंग के साथ टैग बाकी पाठ से मेल खाने के लिए, और आप कर्सर शैली भी बदल सकते हैं।
साइमन डर्बी

6

मुझे लगता है कि मुझे एक समाधान मिल गया है: एक <label>तत्व के अंदर संख्या डालें । किसी अन्य टैग की कोशिश नहीं की, लेकिन <div>इसे होम स्क्रीन पर भी छोड़ दिया, यहां तक ​​कि telephone=noविशेषता के साथ ।

पहले की टिप्पणियों से यह स्पष्ट लगता है कि मेटा टैग ने काम किया था, लेकिन किसी कारण से आईओएस के बाद के संस्करणों के तहत टूट गया, कम से कम कुछ शर्तों के तहत। मैं 4.0.1 चला रहा हूं।


हाय बॉब। आप HTML कोड उदाहरण में रखना चाहते हैं, तो आप, बैकटिक में कोड रैप करने के लिए है <like this>। (स्टैक ओवरफ्लो मार्कडाउन नामक एक प्रारूपण भाषा का उपयोग करता है।) मैं आपके उत्तर को तदनुसार संपादित करूंगा।
पॉल डी। वेट

यह अंततः काम नहीं किया - जब मैंने ऐप को फिर से लोड किया, तो लिंक hiliting वापस आ गया था। मैंने #फ़ोन नंबर के सामने एक वर्ण जोड़ने का सहारा लिया है : Apple doc "Apple URL स्कीम संदर्भ" के अनुसार: "विशेष रूप से, यदि किसी URL में * या # वर्ण हैं, तो फ़ोन एप्लिकेशन संगत डायल करने का प्रयास नहीं करता है। फ़ोन नंबर।"
BobFromBris 7

आपको अपना उत्तर निकालना चाहिए, क्योंकि यह काम नहीं करता है। जैसा कि आप स्वयं उपरोक्त टिप्पणी में स्वीकार करते हैं।
mhenry1384

@ याकूब साफ सुथरा टिप। हम एक ईमेल में HTML के साथ समस्या थी। एक लेबल में लपेटकर अच्छी तरह से +1 काम किया, धन्यवाद
गिडूबब

6

तुम भी उपयोग कर सकते हैं <a>के साथ लेबल javascript: void(0)के रूप में hrefमूल्य।

निम्नानुसार उदाहरण:
<a href="javascript: void(0)">+44 456 77 89 87</a>


यह तब मेरी मदद करता है जब मुझे अभी भी डिफ़ॉल्ट iOS स्टाइल और क्रियाओं का उपयोग करने की आवश्यकता होती है लेकिन विशिष्ट तत्वों को अनदेखा करते हैं।
17

4

मुझे भी यही समस्या थी, लेकिन iPad वेब ऐप पर।

दुर्भाग्य से, न तो ...

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

नहीं ...

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

... काम किया।

लेकिन, यहाँ तीन बदसूरत हैक्स हैं:

  • "O" अक्षर के साथ संख्या "0" की जगह
  • "l" अक्षर के साथ "1" की जगह
  • व्यर्थ अवधि डालें: जैसे, 555.5<span>5</span>5.5555

आपके द्वारा उपयोग किए जाने वाले फ़ॉन्ट के आधार पर, पहले दो मुश्किल से ध्यान देने योग्य हैं। उत्तरार्द्ध में स्पष्ट रूप से शानदार कोड शामिल है, लेकिन उपयोगकर्ता के लिए अदृश्य है।

यदि आप अपने कोड को गतिशील रूप से डेटा से उत्पन्न कर रहे हैं, या यदि आप अपने डेटा को इस तरह से प्रदूषित नहीं कर सकते हैं, तो निश्चित रूप से, और शायद व्यवहार्य नहीं है।

लेकिन, एक चुटकी में पर्याप्त।


2
"आपके द्वारा उपयोग किए जाने वाले फ़ॉन्ट के आधार पर, पहले दो मुश्किल से ध्यान देने योग्य हैं" जब तक कि उपयोगकर्ता ने उनके लिए सामग्री को पढ़ने के लिए iOS सेट नहीं किया है । तब यह काफी ध्यान देने योग्य होगा।
पॉल डी। वेइट

1
एक्सेसिबिलिटी के लिए (जैसे ऊपर वर्णित टेक्स्ट रीडर), या यदि उपयोगकर्ता फ़ोन ऐप में कॉपी / पेस्ट करता है, तो यह बस चीजों को तोड़ देता है। इसके अलावा, सामान्य तौर पर अगर येल्प या गूगल या इस तरह से एक मकड़ी एक व्यापार को अनुक्रमित कर रही है, और गलत फोन नंबर खींचती है, तो यह अच्छा नहीं है।
जोनाह

4

मेरे पास एक एबीएन (ऑस्ट्रेलियाई बिजनेस नंबर) था जो आईपैड सफारी को फोन नंबर लिंक में बदलने पर जोर देता था। किसी भी सुझाव ने मदद नहीं की। मेरा समाधान संख्याओं के बीच आईएमजी टैग लगाना था।

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

वर्ग केवल दस्तावेज़ के लिए मौजूद है जो img टैग के लिए हैं।

IPad 1 (4.3.1) और iPad 2 (4.3.3) पर काम करता है।


3
दुर्भाग्य से, इंटरनेट एक्सप्लोरर में मुझे उन टूटी हुई छवि के चिह्न मिलते हैं। width="0" height="0"मदद जोड़ना , लेकिन फिर भी एक एकल पिक्सेल प्रदर्शित किया जाता है।
गीर्ट

1
आपको छवियों की आवश्यकता नहीं है, बस किसी भी HTML को संख्या के अंदर डालें: <p> फ़ोन नहीं: 112 <span> 34 </ span> 56 </ p>
Radek Pech

@Geert, सेट line-heightऔर font-sizeशून्य पर।
हेल्दीनीडर

4

मेरा अनुभव वैसा ही है जैसा कुछ अन्य लोगों ने उल्लेख किया है। मेटा टैग ...

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

... तब काम करता है जब वेबसाइट मोबाइल सफारी (यानी क्रोम के साथ) में चल रही होती है, लेकिन वेब के रूप में चलने पर काम करना बंद कर देता है (यानी, होम स्क्रीन पर सहेजा जाता है और बिना क्रोम के चलता है)।

मेरा कम-से-आदर्श समाधान इनपुट फ़ील्ड में मान सम्मिलित करना है ...

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

यह आदर्श से कम है क्योंकि सीमा के किसी के भी सेट होने के बावजूद, iOS क्षेत्र के ऊपर एक मल्टी-पिक्सेल ग्रे बार प्रदान करता है। लेकिन, यह एक लिंक के रूप में संख्या को देखने से बेहतर है।


3

मैंने खुद इसका परीक्षण किया है और पाया है कि यह काम करता है, हालांकि यह निश्चित रूप से एक सुरुचिपूर्ण समाधान नहीं है। फोन नंबर में खाली अवधि डालने से डेटा डिटेक्टरों को लिंक में बदलने से रोका जा सकेगा।

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

1
यह वह फिक्स भी है जिसका मैंने उपयोग किया था और यह बहुत अच्छी तरह से काम करता है और काफी सरल है।
होल्गर

2
यह एक अच्छा उत्तर नहीं है, क्योंकि आप विलफुल खराब HTML उत्पन्न करते हैं।
Stephanfriedrich

2

<meta name = "format-detection" content = "telephone=no"> ईमेल के लिए काम नहीं करता है: यदि आप जिस HTML की तैयारी कर रहे हैं वह ईमेल के लिए है, तो मेटाटैग को नजरअंदाज कर दिया जाएगा।

यदि आप जो लक्ष्य कर रहे हैं, वे ईमेल हैं, तो यहाँ अभी तक एक और बदसूरत-लेकिन काम करता है।

कुछ HTML का उदाहरण जो आप लिंक या ऑटो स्वरूपित होने से बचना चाहते हैं:

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

और सीएसएस जो जादू कर देगा:

@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";}
}

खामी: आपको आईपैड / आईफोन पोर्ट्रेट / लैंडस्केप कॉम्ब्स में से प्रत्येक के लिए मीडिया क्वेरी की आवश्यकता हो सकती है



1

Sencha टच ऐप में समान समस्या एप के <meta name="format-detection" content="telephone=no">index.html में मेटा टैग ( ) के साथ हल की गई है।


1

एक ट्रिक जो मैं उपयोग करता हूं, वह केवल मोबाइल सफारी से अधिक काम करती है, HTML एस्केप कोड और फोन नंबर में थोड़ा मार्क-अप का उपयोग करना है। इससे ब्राउज़र को फ़ोन नंबर "पहचान" करने में अधिक मुश्किल होती है

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

1

मुझे भी यह समस्या है: सफारी और अन्य मोबाइल ब्राउज़र वैट आईडी को फोन नंबरों में बदल देते हैं। इसलिए मैं एक एकल तत्व से बचने के लिए एक स्वच्छ विधि चाहता हूं, न कि पूरे पृष्ठ (या साइट) पर।
मैं एक संभावित समाधान साझा कर रहा हूं जो मुझे मिला, यह सबॉप्टीमल है, लेकिन फिर भी यह बहुत व्यवहार्य है: मैंने कहा, नंबर के अंदर मैं एक tel:लिंक नहीं बनना चाहता हूं , &#8288;एचटीएमएल इकाई जो वर्ड-जॉइनर अदृश्य चरित्र है । मैंने इस अर्थ को कुछ अर्थ स्थान पर रखकर और अधिक अर्थपूर्ण (अच्छी तरह से, कम से कम एक प्रकार का) रहने की कोशिश की, उदाहरण के लिए, वैट आईडी के लिए मैंने इसे अपने प्रारूप के अनुसार अंकों के विभिन्न समूहों के बीच रखा ताकि इटालियन वैट I लिखा है: 0613605&#8288;048&#8288;8जो 0613605⁠048 and8 में प्रस्तुत करता है और यह एक टेलीफोन नंबर में परिवर्तित नहीं होता है।


1

एक अन्य विकल्प चरित्र (U + 2011 'यूनिकोड गैर-ब्रेकिंग हाइमन) द्वारा अपने फोन नंबर में हाइफ़न को बदलना है


1

मैं थोड़ी देर के लिए वास्तव में इससे उलझन में था लेकिन आखिरकार इसका पता लगा लिया। हमने अपनी साइट को अपडेट किया और कुछ संख्याओं को लिंक में परिवर्तित किया और कुछ नहीं थे। यदि वे <फ़ील्ड> में हैं, तो वे संख्याएँ लिंक में परिवर्तित नहीं होंगी। स्पष्ट रूप से अधिकांश परिस्थितियों के लिए सही समाधान नहीं है, लेकिन कुछ में यह सही होगा।


0

यह उत्तर 6-13-2012 के अनुसार सब कुछ रौंद देता है:

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

आपके टेक्स्ट से मेल खाने वाले रंग को बदलें, टेक्स्ट डेकोरेशन अंडरलाइन को हटा देता है, पॉइंटर इवेंट इसे ब्राउज़र में लिंक की तरह देखने से रोकता है (पॉइंटर हाथ में नहीं बदलता)

यह ios और ब्राउज़र पर HTML ईमेल के लिए एकदम सही है।


1
मुझे ऐसा लगता है कि यह रंग स्पष्ट रूप से सेट करता है। दूसरे शब्दों में, यह ग्रे होगा चाहे जो भी हो।
बेंज़ादो

"पॉइंटर घटनाओं को ब्राउज़र में लिंक की तरह देखे जाने से रोकता है" - एक ब्राउज़र में जो समर्थन करता है pointer-events, निश्चित है। यदि उपयोगकर्ता IE 10 में आपके HTML ई-मेल देख रहा है , हालांकि, अच्छा नहीं है
पॉल डी। वेट

सवाल फोन नंबरों का पता लगाने के बारे में है, पते को मेल नहीं करना है।
jww

0

आप लिंकिंग को क्यों हटाना चाहते हैं, यह वें को अपनाने के लिए बहुत उपयोगकर्ता के अनुकूल है।

अगर आप बस ऑटो एडिटिंग को हटाना चाहते हैं, लेकिन लिंक को काम करते रहें तो इसे अपने CSS में जोड़ें ...

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

5
ठीक है, मैं मूल पोस्टर के बारे में नहीं कह सकता, लेकिन मेरे मामले में सफारी उन फोन का अनुमान लगा रहा है जो वास्तव में फोन नंबर नहीं हैं, वे वित्तीय डेटा हैं
इरा कार्वाल्हो

1
सवाल टेलीफोन नंबरों पर लिंक का पता लगाने के बारे में है, उन्हें संपादित करने में नहीं।
jww

कुछ मामलों में आपके पास एक वेबसाइट पर एक फ़ोन नंबर हो सकता है, जहाँ आपको फ़ोन-कॉल करने के अलावा कुछ अन्य ऑपरेशन करने की आवश्यकता होती है, जैसे कि इसे संपादित करने के लिए एक विकल्प को खींचना, या क्लिक-एंड-ड्रैग करने की क्षमता इसे कहीं और ले जाना।
नोसाजिमिकी

वह आईपी पते को फोन नंबर के रूप में लिंक नहीं करना चाहता है
जाहरेल

0

पाठ के अलग-अलग ब्लॉक में संख्या को तोड़ दें

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

1
आप यह उल्लेख करना चाहते हैं कि यह एक समाधान है।
डैन

-16

एक अन्य समाधान आईपी नंबर की एक छवि का उपयोग करना होगा


4
मुझे लगता है, यह ऐसा कोई ईश्वर विचार नहीं है। कृपया अपना उत्तर हटा दें। क्योंकि, आप किसी इमेज टेक्स्ट को कॉपी / पेस्ट नहीं कर सकते हैं, यह आसान नहीं है (यदि आप सामग्री या फ़ॉन्ट-शैली बदलते हैं) और इसके अवरोध रहित भी नहीं।
स्टेफ़नफ्राइड्रीच

समाधान समस्या से भी बदतर हो सकता है, जैसा कि
@stephanfriedrich

उपयोगी बिलकुल नहीं।
लुका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.