style.display फ़ायरफ़ॉक्स, ओपेरा, सफारी में काम नहीं कर रहा है - आई 7 ठीक है

मेरे पास एक बिल्कुल स्थित div है जिसे मैं दिखाना चाहता हूं जब उपयोगकर्ता एक लिंक पर क्लिक करता है। लिंक का onclick एक जेएस फ़ंक्शन को कॉल करता है जो div को ब्लॉक में प्रदर्शित करता है (यह भी कोशिश की: "", इनलाइन , table-cell , <�कोड> इनलाइन-टेबल , आदि)। यह आईई 7 में बहुत अच्छा काम करता है, न कि मैंने कोशिश की हर दूसरे ब्राउज़र में (एफएफ 2, एफएफ 3, ओपेरा 9.5, सफारी)।

मैंने कॉल से पहले और बाद में अलर्ट जोड़ने का प्रयास किया है, और वे दिखाते हैं कि प्रदर्शन none से block में बदल गया है लेकिन div नहीं है प्रदर्शन।

अगर मैं फायरबग के एचटीएमएल इंस्पेक्टर (लेकिन फ़ायरबग के कंसोल के माध्यम से जावास्क्रिप्ट चलाकर नहीं) का उपयोग कर डिस्प्ले वैल्यू बदलता हूं तो मुझे एफएफ 3 में प्रदर्शित करने के लिए div मिल सकता है) - इसलिए मुझे पता है कि यह सिर्फ स्क्रीन बंद नहीं कर रहा है।

मैंने जो कुछ भी सोच सकता हूं उसकी कोशिश की है, जिसमें निम्न शामिल हैं:

  • एक अलग सिद्धांत का उपयोग (एक्सएचटीएमएल 1, एचटीएमएल 4, आदि)
  • दृश्य ब्लॉक/none
  • के बजाय दृश्यमान दृश्यमान/छुपा दृश्य का उपयोग करना
  • फ़ंक्शन कॉल के बजाय इनलाइन जावास्क्रिप्ट का उपयोग करना
  • विभिन्न मशीनों से परीक्षण

इस बारे में कोई विचार क्या हो सकता है?

0
ro fr bn

8 उत्तर

Div की ऊंचाई और चौड़ाई को सेट करने का प्रयास करें, और सुनिश्चित करें कि यह सब कुछ की तुलना में ज़ेड-इंडेक्स को उच्चतम सेट करके शीर्ष पर है। यदि पूरी तरह से स्थित div एक तत्व के अंदर है जो अपेक्षाकृत स्थित है, तो यह शीर्ष और बाएं स्थान अपेक्षाकृत स्थित तत्व के शीर्ष और बाईं ओर स्थित है। अपने div को शरीर तत्व के नीचे डालने का प्रयास करें।

0
जोड़ा

क्या आप कुछ मार्कअप प्रदान कर सकते हैं जो त्रुटि को पुन: उत्पन्न करता है? आपकी स्थिति में आपके कोड के साथ कुछ करना होगा क्योंकि मैं इसे आईई, एफएफ 3 और ओपेरा 9.5 पर काम करने के लिए प्राप्त कर सकता हूं:

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class = "स्निपेट-कोड">

 फ़ंक्शन शो() {
  var d = document.getElementById ('testdiv');
  d.style.display = 'ब्लॉक';
}  
 #testdiv {
  स्थिति: पूर्ण;
  ऊंचाई: 20 पीएक्स;
  चौड़ाई: 20 पीएक्स;
  कुछ भी डिस्प्ले मत करो;
  पृष्ठभूमि रंग: लाल;
}  
 <div id = "testdiv"> </div>
 मुझे क्लिक करें   
</div></div>
0
जोड़ा
मेरे पास यह समस्या थी, लेकिन मैं आईई चाल का उपयोग कर इसे आईडी के बिना बस इसे देखकर बस कॉल कर रहा था: testDiv.style.display = 'block';
जोड़ा लेखक chama, स्रोत

चूंकि जावास्क्रिप्ट के साथ गुणों को सेट करना कभी काम नहीं करता था, लेकिन फ़ायरबग के निरीक्षण का उपयोग करके सेटिंग करने के बाद, मुझे संदेह करना शुरू हुआ कि जावास्क्रिप्ट आईडी चयनकर्ता टूट गया था - हो सकता है कि डीओएम में एक ही आईडी के साथ कई आइटम हों? स्रोत ने यह नहीं दिखाया कि जावास्क्रिप्ट का उपयोग करके सभी divs के माध्यम से लूपिंग, मैंने पाया कि यह मामला था। यहां पॉपअप दिखाने के लिए मैंने जो फ़ंक्शन समाप्त किया है, वह यहां दिया गया है:

function openPopup(popupID)
{
  var divs = getObjectsByTagAndClass('div','popupDiv');
  if (divs != undefined && divs != null)
  {
    for (var i = 0; i < divs.length; i++)
    {
      if (divs[i].id == popupID)
        divs[i].style.display = 'block';        
    }
  }
}

(उपयोगिता फ़ंक्शन getObjectsByTagAndClass सूचीबद्ध नहीं है)

आदर्श रूप से मुझे पता चल जाएगा कि एक ही आइटम को कई बार क्यों डाला जा रहा है, लेकिन मेरे पास प्रतिपादन प्लेटफ़ॉर्म पर नियंत्रण नहीं है, केवल इसके इनपुट।

तो जब इस तरह के मुद्दों को डीबग करते हैं, तो डोम में डुप्लिकेट आईडी की जांच करना याद रखें, जो getElementById को तोड़ सकता है

उत्तर देने वाले सभी लोगों के लिए, आपकी मदद के लिए धन्यवाद!

0
जोड़ा
इसके द्वारा, यदि आपका मतलब है कि आपके पास एक ही पृष्ठ पर एकाधिक आईडी नाम हैं, तो यह अमान्य है क्योंकि आईडी नाम केवल पृष्ठ पर एक बार दिखाई दे सकते हैं और एक तत्व के लिए अद्वितीय होना चाहिए।
जोड़ा लेखक Rob, स्रोत

Check the error console (Tools Menu > Error Console in Firefox 3) to make sure that there isn't another error happening that you're not seeing, which is stopping your script from working.

0
जोड़ा

फ़ायरफ़ॉक्स 3.5 पर एक कष्टप्रद प्रदर्शन त्रुटि है लेकिन आईई 7 या फ़ायरफ़ॉक्स 2.0.9 पर नहीं है

मेरे पास 3 डीआईवी की स्थिति पूर्ण है - सादा पाठ वाला पहला; एक सीएसएस मेनू के साथ दूसरा (यूएल और एलआई के साथ sucklefish प्रकार) और तीसरा ditto। कोडिंग की जांच होने के बावजूद तीसरा प्रदर्शित नहीं होगा और डब्ल्यू 3 सी के एचटीएमएल सत्यापनकर्ता के साथ सही साबित होगा।

एक अस्थायी उपाय के रूप में, मैंने दूसरी और तीसरी डीवीवी सामग्री को विलय कर दिया है।

मोज़िला में चीजें खराब होनी चाहिए जब आईई 7 और एफएफ 2 ठीक प्रदर्शन करते हैं लेकिन एफएफ 3.5 नहीं

0
जोड़ा
फिर आपका मार्कअप खराब होना चाहिए क्योंकि यदि आपका मार्कअप आईई में काम करता है लेकिन एफएफ नहीं है तो आपका मार्कअप समस्या है। लेकिन अपना खुद का धागा शुरू करें और हमें दिखाएं कि आपको क्या मिला है ताकि हम इसे आपके लिए ठीक कर सकें।
जोड़ा लेखक Rob, स्रोत

असल में मैं वही समस्या का सामना कर रहा था जिसका आप वर्णन कर रहे हैं। वास्तव में मेरी समस्या को ठीक करने के लिए दस्तावेज़ गुणों को बदल रहा था।

पुराना डॉक्टरेट/एचटीएमएल स्पेक



के साथ बदला गया

<html>
0
जोड़ा

आपको एक window.onload विधि लिखनी होगी:

window.onload = document.getElementById('testdiv').style.display='inline';

या आप एक चर भी बना सकते हैं:

var d = document.getElementById('testdiv');
window.onload = d.style.display = 'inline';
0
जोड़ा

मैं आपको एक बड़ा संकेत दूंगा:

<div style="..." class="..."> ... </div>

यदि आपके पास शैली में कुछ है, तो document.style काम करेगा! यदि आपके पास कक्षा में कुछ है, तो यह दस्तावेज़ में दिखाई नहीं देगा। स्टाइल और क्लास = "..." इसे ओवरराइड करेगा!

इसके बारे में सोचें और इससे कई समस्याएं खत्म हो जाएंगी। बस यह एक छोटी सी समझ आपको इस मन वायरस से छीन लेगी। आपका दिन शुभ हो। चीयर्स, रॉन लेंटजेस, एलसी सीएलएस।

0
जोड़ा