javascript - ExtJS का उपयोग कर शैलियों को कैसे सेट करें




(4)

मैं निम्नलिखित कोड का उपयोग कर तत्व या extJS विजेट के रंग, फ़ॉन्ट आकार, पृष्ठभूमि, आदि जैसे शैलियों को बदलना चाहता था लेकिन कोई भी काम नहीं करता है:

Ext.get('mydivid').setStyle({.......});     // does not work
Ext.get('mydivid').applyStyle({.......});   // does not work
Ext.select('mydivid').applyStyle({.......});   // does not work
Ext.query('.myclass').applyStyle({.......});   // does not work

और extJs विजेट के लिए मैंने Ext.getCmp का उपयोग करने का Ext.getCmp

क्या किसी को पता है कि extjS का उपयोग करके HTML तत्व और extJS विजेट की शैलियों को कैसे बदला जाए और सीएसएस नहीं?


Answers

विजेट पर निम्नलिखित संभव है (लेकिन इसे प्रस्तुत करने से पहले ही, क्योंकि style कॉन्फ़िगरेशन प्रॉपर्टी रेंडर के दौरान लागू होती है):

Ext.define('Ext.Component', {
  style: {},
  initComponent: function(config) {
    this.callParent(config);
    this.style['background-color'] = 'red';
  }
});

यह उपयोगी है अगर आप कहें कि आप किसी अन्य कॉन्फ़िगरेशन सेटिंग के कुछ विशिष्ट मान पर कार्य कर रहे हैं।

जैसा कि एक बार प्रस्तुत किया गया है, आपके पास encapsulated Ext.Element की setStyle () विधि तक Ext.Element :

component.getEl().setStyle(config);

अंत में आप सीधे मांस पर जा सकते हैं, और सीधे encapsulated DOM element तक पहुंच सकते हैं:

component.getEl().dom.style.backgroundColor = 'red';

एचटीएमएल डोम तत्वों की शैली बदलना काफी आसान है:

एचटीएमएल

<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <div id="el1">Element 1</div>
        <div class="el">Element [1]</div>
        <div class="el">Element [2]</div>
    </body>
</html>

जावास्क्रिप्ट

Ext.onReady(function() {
    Ext.get('el1').setStyle('color', 'red');
    Ext.select('.el').setStyle('color', 'green');
});

Ext.query सीधे काम नहीं करेगा क्योंकि यह पाया गया डोम नोड्स की एक साधारण सरणी देता है, इसलिए आपको शैलियों को लागू करने के परिणामस्वरूप लूप करना होगा। तुमने वास्तव में क्या किया

स्टाइलिंग विजेट दुर्भाग्य से इतना आसान नहीं है। अधिकांश विगेट्स कुछ स्टाइलिंग गुण जैसे कि ctCls , bodyCls , bodyCls या style प्रदान करते हैं लेकिन घटक को प्रतिपादित करते समय उन्हें लागू किया जाता है। प्रतिपादन के बाद विजेट की शैली को बदलने के लिए आपको ऊपर दिए गए तरीकों का उपयोग करके विजेट के डीओएम तत्वों को सीधे बदलना होगा।


आपके प्रश्न में टाइपो त्रुटि है:

यह लागू नहीं है स्टाइल लेकिन लागू स्टाइल।

लागू स्टाइल Ext.Element की विधि है, आप इसे निम्नानुसार उपयोग कर सकते हैं:

var win = new Ext.Window({
      width: 200, 
      height: 200
});
win.show();

win.body.applyStyles({ 
  'background-color':'red',
  'border': '1px solid blue'
});

तो, सवाल यह है कि रीडायरेक्ट पेज कैसे बनाया जाए, न कि किसी वेबसाइट पर रीडायरेक्ट कैसे किया जाए?

इसके लिए आपको केवल जावास्क्रिप्ट का उपयोग करना होगा। यहां कुछ छोटे कोड हैं जो एक गतिशील रीडायरेक्ट पेज बनाएंगे।

<script>
    var url = window.location.search.split('url=')[1]; // Get the URL after ?url=
    if( url ) window.location.replace(url);
</script>

तो कहते हैं कि आप इस स्निपेट को अपनी वेबसाइट पर एक redirect/index.html फ़ाइल में डाल सकते हैं, आप इसका उपयोग कर सकते हैं।

http://www.mywebsite.com/redirect?url=http://.com

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

प्रलेखन के लिए लिंक

और यह है कि आप जावास्क्रिप्ट के साथ एक सरल रीडायरेक्ट पृष्ठ कैसे बनाते हैं

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

इसमें भी एक बात ध्यान देने वाली है। मैंने अपने कोड में window.location.replace जोड़ा है क्योंकि मुझे लगता है कि यह एक रीडायरेक्ट पेज को सूट करता है, लेकिन, आपको पता होना चाहिए कि window.location.replace का उपयोग करते समय और आप रीडायरेक्ट हो जाते हैं, जब आप अपने ब्राउज़र में बैक बटन दबाते हैं तो यह नहीं होगा पुनर्निर्देशित पृष्ठ पर वापस आ गया, और यह पृष्ठ पर वापस जाएगा इससे पहले कि, इस छोटी सी डेमो चीज़ पर एक नज़र डालें।

उदाहरण:

प्रक्रिया: स्टोर होम => रीडायरेक्ट पेज को google => google पर

जब Google में: google => ब्राउज़र में बैक बटन = होम स्टोर करें

इसलिए, यदि यह आपकी आवश्यकताओं के अनुरूप है तो सब कुछ ठीक होना चाहिए। यदि आप इसे बदलने के लिए ब्राउज़र इतिहास में पुनर्निर्देशित पृष्ठ को शामिल करना चाहते हैं

if( url ) window.location.replace(url);

साथ में

if( url ) window.location.href = url;




javascript extjs