阻止iframe加载,而asp.net不可见

时间:2018-11-20 21:41:58

标签: javascript c# html asp.net iframe

我在网站上有一个页面,该页面的顶部带有标签。单击每个选项卡都会显示不同的部分。每个部分都有多个iframe。

我的问题是,加载带有标签页的页面时,加载速度很慢,因为它会一次加载所有标签页中的所有iframe。

我正在寻找一种仅加载可见iframe的方法。有没有一种方法可以阻止iframe的加载,例如在单击选项卡时设置其来源,或者是在visible = true时更简单地加载iframe的方法?

在博客和网站上搜索,我发现的全部原因就是为什么使用iframe和iframe替代品不好。就我而言,使用iframe非常实用。

以下是其中一个标签HTML的示例,该标签位于div标签中:

<div class="single" id="Company_Options">
                    <fieldset style="margin-top:-10px; border: 1.5px solid #00659c; height:auto;">
                        <legend style="color:#00659c;font-weight:bold;font-size:20px;" id="Company_Title" runat="server"></legend>
                        <table style="width:100%; margin-top:-10px; margin-bottom:-30px;">
                            <tr>
                                <td style="width:50%;">
                                    <fieldset>
                                        <legend style="color:#00659c;font-weight:bold;font-size:15px;" id="Company_Country_Title" runat="server"></legend>
                                        <iframe id="iframeCountryList" frameborder="0" scrolling="auto" width="100%" height="100%" src="CountriesList.aspx" style=""></iframe>
                                    </fieldset>
                                </td>
                                <td style="width:50%;">
                                    <fieldset>
                                        <legend style="color:#00659c;font-weight:bold;font-size:15px;" id="Company_Currencies_Title" runat="server"></legend>
                                        <iframe id="iframeCurrencyList" frameborder="0" scrolling="auto" width="100%" height="100%" src="CurrenciesList.aspx" style=""></iframe>
                                    </fieldset>
                                </td>
                            </tr>
                            <tr>
                                <td style="width:50%;">
                                    <fieldset>
                                        <legend style="color:#00659c;font-weight:bold;font-size:15px;" id="Company_Departments_Title" runat="server"></legend>
                                        <iframe id="iframeDepartmentList" frameborder="0" scrolling="auto" width="100%" height="100%" src="DepartmentList.aspx" style=""></iframe>
                                    </fieldset>
                                </td>
                                <td style="width:50%;">
                                    <fieldset>
                                        <legend style="color:#00659c;font-weight:bold;font-size:15px;" id="Company_Divisions_Title" runat="server"></legend>
                                        <iframe id="iframeDivisionList" frameborder="0" scrolling="auto" width="100%" height="100%" src="DivisionList.aspx" style=""></iframe>
                                    </fieldset>
                                </td>
                            </tr>
                        </table>
                    </fieldset>
                </div>

当标签设置如下时:

Company_Options.Visible = false;

iframe的内容仍会加载。

我需要这样的伪代码:

iframeCountryList.Render = false;
iframeCurrencyList.Render = false;
iframeDivisionList.Render = false;
iframeDepartmentList.Render = false;
Company_Options.Visible = false;

关于我如何阻止iframe呈现的任何想法,无论它是在C#中还是在客户端javascript背后的代码中?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以为其创建一个控件。在初始化时,像data-src那样填充属性,而不是src。需要加载iframe内容时,可以从src复制data-src