मैं इस तरह एक स्टाइलशीट बनाना चाहते हैं बाएं ओर:अमान्य काम के साथ त्रिगुट
var sheet = document.createElement('style'); sheet.type = 'text/css';
sheet.innerHTML = data.style;
लेकिन it seems कि IE अपनी ही वाक्य रचना की जरूरत है। this answer के कोड को आसान बनाने के लिए, मैं
var sheet = document.createElement('style'); sheet.type = 'text/css';
(sheet.styleSheet ? sheet.styleSheet.cssText : sheet.innerHTML) = data.style;
की कोशिश की है लेकिन वह ReferenceError: invalid assignment left-hand side
फेंकता है।
, मैं का उपयोग करना चाहिए ...
var sheet = document.createElement('style'); sheet.type = 'text/css';
if(sheet.styleSheet) sheet.styleSheet.cssText = data.style;
else sheet.innerHTML = data.style;
... या वहाँ एक आसान विकल्प है?
function setSheetContent(sheet, text) {
if(sheet.styleSheet)
sheet.styleSheet.cssText = text;
else
sheet.innerHTML = text;
}
var sheet = document.createElement('style');
sheet.type = 'text/css';
setSheetContent(sheet, data.style);
या यह लपेट और भी अधिक सुविधा के लिए (यदि आप कभी नहीं किसी मौजूदा चादर की सामग्री बदलना चाहते हैं:
मेरा मानना है कि आप दोनों मूल्यों को स्थापित करने से दूर हो सकते हैं, और जावास्क्रिप्ट की ऑब्जेक्ट सिस्टम अंतर की देखभाल करने के लिए पर्याप्त मजबूत है। – abiessu
@abiessu लेकिन अगर 'sheet.styleSheet'' अपरिभाषित 'है, तो 'sheet.styleSheet.cssText = sheet.innerHTML = data.style' फेंकता है' TypeError: sheet.style शीट अपरिभाषित है। फिर, मुझे यह भी जांचना चाहिए कि मुझे ऑब्जेक्ट 'शीट.स्टाइलशीट' – Oriol
नहीं बनाना चाहिए, मेरा मतलब है कि दो अलग असाइनमेंट लाइनों का उपयोग करना है। उस प्रकार की त्रुटि बहुत अधिक संभावना है क्योंकि 'sheet.stylesheet' आपके उदाहरण में' sheet.styleSheet.cssText' तक पहुंच योग्य मान प्रदान करने के उद्देश्य से मौजूद नहीं है। – abiessu