javascript - Updating visited status of a link when changing its href attribute, under Chrome -


जब मैं जावास्क्रिप्ट

  $ ('# link_id') के साथ लिंक अपडेट कर रहा हूं। ('Href', some_new_url)  

विज़िट किए गए / गैर-दौरा किए लिंक के लिए रंग विषय बनी रहती है, नए यूआरएल पते की स्थिति पर ध्यान दिए बिना।

और नोट्स:

मैं क्रोम (32) और सफारी में इस समस्या का अनुभव कर रहा हूँ (OSX 10.8 पर)। 6.1)। फ़ायरफ़ॉक्स (26) में लिंक्स की स्थिति वांछित होती है, जैसा कि वांछित होता है।

उपर्युक्त उदाहरण jQuery में है, लेकिन समस्या वैनेला जावास्क्रिप्ट के साथ उसी प्रकार है, अर्थात document.getElementById और setAttribute

(अगर संभव है तो मैं & lt; a & gt; & lt; / a & gt; को हटाने और जोड़ना पसंद करता हूं।) < / P>

संपादित करें:

कम से कम (गैर) काम कर रहे उदाहरण (Joeytje50 द्वारा):

निश्चित जवाब

आप इसे ठीक करने के लिए क्या कर सकते हैं, बस ब्राउज़र को href विशेषता को पूरी तरह से हटाकर शैलियों की पुनर्गणना करने के लिए मजबूर कर रहा है, और फिर पुन: इसे तुरंत बाद में वापस जोड़ना इससे पहले कि ब्राउज़र पहले शैलियों की गणना करेगा, क्योंकि & lt; a & gt; अब href के बिना एक लिंक नहीं है, और फिर आप href आप इसे देना चाहते हैं कोड तब होगा:

  $ ('# link_id')। RemoveAttr ('href')। Prop ('href', some_new_url);  

पुनश्च: इस मामले में, .attr ('href', some_new_url) का उपयोग कर; संभवतः उतना ही ठीक काम करेगा।

पिछला प्रयास

मैं क्या सोच रहा हूं यह है कि यह एक रेंडरिंग गड़बड़ है स्क्रिप्ट की वजह से : का दौरा किया गया राज्य बदलता है जब यह शैलियों की पुनर्गणना नहीं करता है आपकी समस्या का न्यूनतम उदाहरण यह अच्छी तरह से दर्शाता है आप निम्न में से क्या देख सकते हैं:

तत्व के गुणों का उपयोग

समस्या क्या हो सकती है कि आप विशेषता को बदल रहे हैं, जिससे बदले में href संपत्ति बदल जाती है। यदि आप सीधे href संपत्ति बदलते हैं तो यह काम कर सकता है आप ऐसा कर सकते हैं, जो लिंक को बदलने के लिए निम्न कोड का उपयोग करेगा:

  $ ('# link_id')। Prop ('href', some_new_url);  

मुझे वास्तव में इस बारे में बहुत अधिक उम्मीदें नहीं हैं, लेकिन यह कोशिश करने योग्य है मैं जो संदेह करता हूं वह बहुत बेहतर काम करेगा:

शैलियों की पुनर्गणना करने के लिए मजबूर

यदि आप शैलियों की पुनर्गणना को बल देना चाहते हैं, तो आप बस उच्चतम तत्व पर एक वर्ग को बदल सकते हैं आप अपडेट करना चाहते हैं चूंकि आप & lt; a & gt; तत्व को अकेले अपडेट कर रहे हैं, आपको इस तरह से कुछ चाहिए:

  $ ('# link_id')। Prop ('href ', Some_new_url) .toggleClass (' वेबकिट-बल-पुनर्गणना ');  

मुझे लगता है कि चाल को करने की काफी संभावना है।


यदि इन तरीकों में से कोई भी आपके लिए काम नहीं करता है, तो आप निश्चित रूप से उपयोग।


Comments

Popular posts from this blog

ios - How do I use CFArrayRef in Swift? -

eclipse plugin - Run java code error: Workspace is closed -

c - Error on building source code in VC 6 -