सामग्री से छीन लिया सीएसएस डिव में Javascript के माध्यम से embeded

वोट
0

मैं निम्न फ़ाइल फ़ाइल है:

<html>
<head>
<title></title>

<script type=text/javascript src=/Prototype.js></script>
<script type=text/javascript>
function load_content()
{
  new Ajax.PeriodicalUpdater('content', '/UpdatedContent/,
  {
    method: 'post',
    frequency: 5
  });

  //var fileref = document.createElement(link);
  //fileref.setAttribute(rel, stylesheet);
  //fileref.setAttribute(type, text/css);
  //fileref.setAttribute(href, filename);
}
</script>

</head>

<body>

<div id=content></div>

<script type=text/javascript>
    load_content();
</script>

</body>
</html>

UpdatedContent से सामग्री सामग्री हर 5 सेकंड div में लोड किया जाता है। क्या अजीब बात यह है कि एचटीएमएल भरी हुई है लेकिन लोड पेज के शीर्ष पर अनुभाग पूरी तरह से बाहर छीन लिया जाता है जब यह सामग्री में डाला जाता है

लोड पेज अनिवार्य रूप से यह है:

<style type=text/css> 
 ... lots of css here ...
</style>

... lots of HTML here ...

यहाँ नहीं हैं , ,

एक div में सीधे इंजेक्ट किया जा नहीं सकते हैं सीएसएस ?? वहाँ किसी कारण या तो प्रोटोटाइप ढांचे या ब्राउज़र के डोम सीएसएस बाहर अलग करना है?

मैं एक अलग कॉल किए बिना सीएसएस कैसे शामिल कर सकता ??

आप दिए गए मुख्य फ़ाइल से देख सकते हैं, पेज सामग्री div में भरी हुई कुछ भी बिना पूरी तरह से खाली हो जाएगा। यह जानबूझकर है। मैं मूल रूप से इतना है कि पेज पूरी तरह से डेटा की एक ताज़ा करने के लिए फिर से लोड करने की जरूरत नहीं है एक संरचना के रूप में उपयोग करने के लिए जिस पर गतिशील रूप से एक अंतराल पर सामग्री को अद्यतन करने, लोड करने के लिए इच्छुक हूँ।

और नहीं, मैं न सिर्फ मुश्किल सीएसएस ऊपर फ़ाइल में कोड कर सकते हैं के रूप में सीएसएस भी बदलने वाला है।

संपादित करें: के बारे में yaauie की प्रतिक्रिया ... अब मुझे पता है क्यों हो रहा है, के बाद से मैं एक ही टुकड़े में शैली और सामग्री गुजर रहा हूँ। मैं एक अलग फाइल कि लोड किया जा सकता में सीएसएस अलग हैं, तो कैसे मैं तो यह AJAX (प्रोटोटाइप अधिमानतः का उपयोग) के माध्यम से लोड और फिर, अधिक महत्वपूर्ण बात यह पृष्ठ की सामग्री के लिए शैली पत्रक के रूप में है कि सीएसएस सेट?

12/01/2009 को 01:44
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
1

<style>टैग केवल में अनुमति दी है <head>के एचटीएमएल और एक्सएचटीएमएल , नहीं <body>या उसके वंश के किसी भी। वेब ब्राउज़र एक दस्तावेज़ के प्रारंभिक पार्स में इस बात का काफी क्षमा हो जाते हैं, लेकिन जब innerHTML बदलते मुझे लगता है कि ब्राउज़र किसी भी उपेक्षा होगा उम्मीद करेंगे <style>तत्वों तत्व के प्रकार वहाँ की उम्मीद नहीं है क्योंकि।

समाधान के लिए, यह अपने जवाब में इनलाइन सीएसएस का उपयोग करना संभव हो सकता है, कि का उपयोग करें style=""HTML तत्वों आप गुजर रहे हैं की विशेषता?

संपादित करें: करने के लिए सीएसएस जोड़ने के लिए <head>दो में से एक की आवश्यकता होगी:

  • अपने सर्वर पर दो दौर यात्राएं:
  • एक प्रतिक्रिया है कि दोनों शामिल है और डाला जा रहा से पहले पार्स किया जा सकता

इस मामले में, मैं भेजने से पहले एक JSON ऑब्जेक्ट में अपने दो भागों एन्कोडिंग की सिफारिश करेंगे। AJAX कार्रवाई पर आपका कॉलबैक इन विभाजित है और उनके उपयुक्त स्थानों के लिए उन्हें संलग्न (शैली पहली स्क्रीन घबराना से बचने के लिए) चाहिए

{"style":"\ndiv#ajax7373 a {\n  color:#fff;\n  text-decoration:underline;\n  font-weight:bold;\n  \n}\ndiv#ajax7373 {\n  background-color:#ff1cae;\n  color:#ff6ccf;\n}","object":"\n<div id=\"#ajax7373\">\n\tThere is the contents of your div and a <a href=\"#\">link<\/a>\n<\/div>\n"}

यही कारण है कि कहा, मैं यह मुश्किल विश्वास है कि एप्लिकेशन इतनी दृढ़ता से शैली / सामग्री sepration के पक्ष में है और एक तरीका है, जहां सामग्री द्वारा उत्पन्न शैली जरूरी रोजगार है पाते हैं। क्यों आपके AJAX अनुरोध के प्रत्याशित प्रतिफल सहित पूरे डोमेन, शैली नहीं दे? AJAX आइटम वास्तव में संरचना / शैली में काफी विचरण इस वारंट करने जा अनुरोध कर रहे हैं?

12/01/2009 को 02:19
का स्रोत उपयोगकर्ता

वोट
1

आप उत्पन्न सीएसएस के लिए या तो इनलाइन शैलियों के साथ फंस रहे हैं या आप सभी विभिन्न शैलियों की जरूरत है ताकि आप अभी भी स्टाइल को अलग कर सकते हैं के लिए वर्ग नामों की टन लिखने के लिए होगा। तो फिर तुम जे एस के माध्यम से वर्ग के नाम बदल सकता है।

13/01/2009 को 15:54
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more