I have an RSS feed being pulled through XSLT on an .xsl file. I have a “Show” Link that when clicked displays a hidden DIV with an Iframe that has the source of the unique RSS Item’s full page.
The issue is since this DIV is hidden it actually loads all the iframe’s source pages when the page is first viewed and boggs down the loading time considerably.
What i want to do is only have the iframe load the source after the “Show” button is clicked. How can i invoke this with an XSLT If Statement?
<?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>
What I think you need to do is initially load a ‘blank’ page for each IFRAME. For example, a page called blank.htm, that is empty. Also, you may want to give each IFRAME an ID tag, so you can easily access it with Javascript to change the source
Then, you can code your javascript like so, to show the DIV, and change the source of the IFRAME to the correct page.
Here’s an example of the whole stylesheet for you