मेरे पास एक .xsl फ़ाइल पर एक्सएसएलटी के माध्यम से एक आरएसएस फ़ीड खींचा जा रहा है। मेरे पास एक "शो" लिंक है जिस पर क्लिक करने पर एक आईफ्रेम के साथ एक छिपा हुआ डीआईवी प्रदर्शित होता है जिसमें अद्वितीय आरएसएस आइटम के पूर्ण पृष्ठ का स्रोत होता है।

मुद्दा यह है कि चूंकि यह डीआईवी छिपा हुआ है, यह वास्तव में सभी आईफ्रेम के स्रोत पृष्ठों को लोड करता है जब पृष्ठ को पहली बार देखा जाता है और लोडिंग समय को काफी कम कर देता है।

मैं जो करना चाहता हूं वह केवल "शो" बटन क्लिक करने के बाद आईफ्रेम लोड स्रोत है। मैं इसे एक्सएसएलटी इफ स्टेटमेंट के साथ कैसे लागू कर सकता हूं?

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:user="urn:my-extension-lib:date">
<xsl:template match="/">
    <xsl:for-each select="rss/channel/item">            
        <div style="margin-bottom: 30px;">
            <div style="margin: 5px;">
                <div style="font-weight: bold;">                        
                    <a href="{link}" target="_blank" style="font-size: 10pt;">
                        <xsl:value-of select="title" />
                    </a>
                </div> 
                <div>
                    <xsl:value-of select="user:GetFormattedDate(pubDate,'MMM d, yyyy hh:mm tt')" />
                </div>
            </div>
            <div style="padding-left:30px">
                <a href="javascript:test('{guid}', '{link}');" id="{link}">Show</a>
            </div>
            <div style="margin: 20px 20px 20px 40px;display:none" id="{guid}">
                <iframe width="685" height="400" scrolling="yes" frameborder="yes" src="{link}"></iframe>
            </div>
        </div>
    </xsl:for-each>
</xsl:template>
1
the sandman 10 जून 2011, 19:26
एक्सएसएल .... मैंने अभी इसे अपडेट किया है। मेरा हमेशा यह काम है।
 – 
the sandman
10 जून 2011, 19:38
क्या आप अपना थोड़ा सा एक्सएसएलटी दिखा सकते हैं?
 – 
Emiliano Poggi
10 जून 2011, 19:41
मेरे लिए, आपको उस अंडरलेइंग सॉफ़्टवेयर को भी इंगित करना चाहिए जिसका उपयोग आप जो कर रहे हैं उसे करने के लिए कर रहे हैं।
 – 
Emiliano Poggi
10 जून 2011, 19:43
C# का उपयोग करके पूर्ण .XSLT फ़ाइल दिखाने के लिए अद्यतन किया गया और यह एक वेब ऐप है
 – 
the sandman
10 जून 2011, 19:44
तो, आप अपने ट्रांसफॉर्म के अंदर एक बटन क्लिक ईवेंट को संभालना चाहते हैं?
 – 
Emiliano Poggi
10 जून 2011, 19:50

1 उत्तर

सबसे बढ़िया उत्तर

मुझे लगता है कि आपको शुरुआत में प्रत्येक IFRAME के ​​लिए एक 'रिक्त' पृष्ठ लोड करने की आवश्यकता है। उदाहरण के लिए, एक पेज जिसे ब्लैंक.एचटीएम कहा जाता है, वह खाली है। साथ ही, आप प्रत्येक IFRAME को एक आईडी टैग देना चाह सकते हैं, ताकि आप स्रोत बदलने के लिए जावास्क्रिप्ट के साथ इसे आसानी से एक्सेस कर सकें

<iframe id="iframe{guid}" width="685" height="400" scrolling="yes" frameborder="yes" src="blank.htm"/>

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

function test(id, link)
{
   document.getElementById(id).style.display = 'block';
   document.getElementById("iframe" + id).src = link;
}

यहां आपके लिए संपूर्ण स्टाइलशीट का एक उदाहरण दिया गया है

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/">
      <html>
         <head>
            <title>Test</title>
            <script> 
            function test(id, link) 
            { 
               document.getElementById(id).style.display = 'block'; 
               document.getElementById("iframe" + id).src = link; 
            } 
            </script>
         </head>
         <body>
            <xsl:for-each select="rss/channel/item">
               <div style="margin-bottom: 30px;">
                  <div style="margin: 5px;">
                     <div style="font-weight: bold;">
                        <a href="{link}" target="_blank" style="font-size: 10pt;">
                           <xsl:value-of select="title"/>
                        </a>
                     </div>
                     <div>
                        <xsl:value-of select="pubDate"/>
                     </div>
                  </div>
                  <div style="padding-left:30px">
                     <a href="javascript:test('{guid}', '{link}');" id="{link}">Show</a>
                  </div>
                  <div style="margin: 20px 20px 20px 40px;display:none" id="{guid}">
                     <iframe id="iframe{guid}" width="685" height="400" scrolling="yes" frameborder="yes" src="blank.htm"/>
                  </div>
               </div>
            </xsl:for-each>
         </body>
      </html>
   </xsl:template>
</xsl:stylesheet>
1
Tim C 14 जून 2011, 12:20
यार तुम कमाल हो। यह एक आकर्षण की तरह काम करता है और वही करता है जो मुझे चाहिए। धन्यवाद!!!!!!
 – 
the sandman
30 जून 2011, 22:02